Действия MoveByOffset в драйвере приложения Win: как его увидеть или замедлить?

У меня есть код ниже, и он перетаскивается из одной позиции в другую, но это не совсем правильная позиция. Как я могу его замедлить или посмотреть, что он делает? Я использовал Mouse.Move в CodedUI и Mouse.StartDragging и т. Д., И вы можете установить скорость и посмотреть, что они делают, и при необходимости исправить их. Это для перетаскивания чего-либо с холста к другому элементу на холсте, чтобы это было связано с положением.

Я знаю, что когда-нибудь доберусь туда, и PMeter - отличный инструмент, который поможет вам в этом, но я бы хотел увидеть, что я иногда делаю для отладки.

        Actions builder = new Actions(session);
        builder.MoveByOffset(100, -85);
        builder.ClickAndHold();
        builder.MoveByOffset(gridPos2.X - gridPos1.X, gridPos2.Y - gridPos1.Y);
        builder.Release();
        builder.Perform();

person Ewan    schedule 22.11.2018    source источник
comment
Моя сессия - это сессия WPF, кстати. WindowsDriver ‹RemoteWebElement› сеанс   -  person Ewan    schedule 22.11.2018
comment
Моя мышь правильно перетаскивала элемент .. но она перестала работать. MoveByOffset в основном телепортирует мышь, а не перемещает ее ..: \   -  person jfaron    schedule 01.05.2020


Ответы (2)


если вы хотите знать, куда указывает мышь, просто выберите 'показать прямоугольник выделения' в программе Проверка. На прикрепленном изображении вы найдете отмеченную опцию.

person gustavo herrera    schedule 27.06.2019
comment
Я использую это для разработки, но он не показывает курсор при запуске теста. - person Ewan; 01.12.2020
comment
Я использую Windows 10 и для веб-приложений и для настольных приложений, у меня это работает - person gustavo herrera; 05.01.2021

Я создал метод, показывающий, как курсор мигает выбранным вами цветом ...

    /// <summary>
    /// This method is useful for seeing what the cursor is doing. **Call it like this...**
    /// CommonMethods.HighlightCursor(new System.Drawing.Pen(System.Drawing.Color.Red));
    /// </summary>
    /// <param name="colour"></param>
    public static void HighlightCursor(Pen colour)
    {
        for (int i = 0; i < 10; i++)
        {
            Point pt = Cursor.Position; // Get the mouse cursor in screen coordinates
            using (Graphics g = Graphics.FromHwnd(IntPtr.Zero))
            {
                g.DrawEllipse(colour, pt.X - 5, pt.Y - 5, 10+i, 10+i);
            }

            Thread.Sleep(150);
        }
    }
person Ewan    schedule 01.12.2020