Я использую 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: я изменил логику своего теста,так что я могу перетащить второй элемент в первый, а не последний в первый.Таким образом, у меня больше нет проблем с этим конкретным тестом, но мне все равно было бы любопытно, если бы были найдены решения для двух вопросов, которые я задавал выше, так как я думаю, что это было бы полезно знать.