Прокрутка функциональности в Appium для идеализации конкретного объекта в списке / раскрывающемся списке - PullRequest
0 голосов
/ 03 июля 2019

У меня есть список, в котором перечислены все штаты Индии, и мне нужно выбрать конкретное состояние с помощью прокрутки.

Tiled Touchactions Испытатель Java-сценарий

JavascriptExecutor je = (JavascriptExecutor) driver;
AndroidElement sct = driver.findElement(By.xpath("//android.view.View[@text='Karnataka']"));
je.executeScript("arguments[0].scrollIntoView(true);",sct);

Ответы [ 2 ]

0 голосов
/ 04 июля 2019

а) В Appium нет прямого метода для прокрутки. Б) Используя локатор AndroidUiAutomator и новый UiScrollable (новый UiSelector ()). ScrollIntoView (tag (/ "value /")) Вы можете прокрутить вверх до элемента.

попробуйте с приведенным ниже кодом.

driver.findElementByAndroidUIAutomator ("new UiScrollable (new UiSelector ()). ScrollIntoView (tagName (\" value \ "));");

0 голосов
/ 03 июля 2019

Ваш подход немного ошибочен, вы не можете использовать Element.scrollIntoView , когда речь идет о Appium тестах, поскольку вы ограничены определенным списком мобильных команд Аппиум может понять.

Вам необходимо провести рефакторинг вашего кода, чтобы использовать mobile:shell команду , что-то вроде:

Dimension windowSize = driver.manage().window().getSize();
Map<String, Object> args = new HashMap<>();
args.put("command", "input");
args.put("args", Lists.newArrayList("swipe", windowSize.width / 2,
        windowSize.height / 2, windowSize.width / 2, windowSize.height));
while (driver.findElements(By.xpath("//android.view.View[@text='Karnataka']")).size() == 0) {
    driver.executeScript("mobile: shell", args);
}
driver.findElement(By.xpath("//android.view.View[@text='Karnataka']")).click();

В качестве альтернативы вы можете использовать SwipeWhileNotFound доступна командачерез SeeTest Appium Extensions

seetest.swipeWhileNotFound("Up", 0, 2000, "NATIVE", "xpath=//android.view.View[@text='Karnataka']", 0, 1000, 5, true)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...