Могу ли я перетащить элемент в поле зрения? - PullRequest
0 голосов
/ 09 июля 2019

Я использую WinAppDriver для тестирования приложения UWP.Для теста мне нужно перетащить последний элемент списка к первому элементу списка.Итак, я получаю координаты двух элементов следующим образом:

var elementCoord = _session.FindElementByName(elementName).Coordinates;
var targetCoord = _session.FindElementByName(targetElementName).Coordinates;

И затем перетаскиваю свой элемент следующим образом:

_session.Mouse.MouseMove(elementCoord);
_session.Mouse.MouseDown(null);
_session.Mouse.MouseMove(targetCoord, 10, 10);
System.Threading.Thread.Sleep(200);
_session.Mouse.MouseUp(null);

Sleep (200) должен позволить приложению подтвердитьперетаскивание перед падением.Это прекрасно работает, когда два элемента видны.

Проблема в том, что этот список может быть достаточно длинным, чтобы два элемента не могли одновременно отображаться одновременно.А получение координат элементов вне поля зрения имеет плохие последствия.

Я легко могу перетащить элемент в вид, щелкнув по нему (используя неявную прокрутку в эффект просмотра действия щелчка).Проблема для второго элемента: если я щелкаю по нему, он портит действие перетаскивания.

Итак, есть ли способ выполнить неявную прокрутку в представлении без щелчка?

Я искал это и не мог найти ничего, что, на мой взгляд, довольно печально, потому что это действительно полезно во многих ситуациях, в том числе в тех, где нам не нужно нажимать (или НЕ нужно нажимать).

Если нет, есть ли другие способы выполнить перетаскивание на элемент вне поля зрения?

Спасибо

edit: я изменил логику своего теста,так что я могу перетащить второй элемент в первый, а не последний в первый.Таким образом, у меня больше нет проблем с этим конкретным тестом, но мне все равно было бы любопытно, если бы были найдены решения для двух вопросов, которые я задавал выше, так как я думаю, что это было бы полезно знать.

...