Как прокручивать страницу с помощью метода TouchActions appium?

Я пишу автоматические тесты для собственного приложения Android и вынужден работать с проблемой прокрутки.

Мне нужно прокрутить страницу приложения Android и поискать в Google следующий метод для этого: http://appium.io/docs/en/commands/interactions/touch/scroll/

TouchActions action = new TouchActions(driver);
action.scroll(element, 10, 100);
action.perform();

Но в первой строке я получаю исключение «java.lang.ClassCastException: io.appium.java_client.android.AndroidDriver не может быть преобразован в org.openqa.selenium.interactions.HasTouchScreen»

Моя среда: java, jdk 1.8.0_65, appium 1.6.1

P.S. Я пробовал использовать TouchAction - из этих Автоматизация мобильных жестов, он работает, но методы устарели.

.press(100,100) 
.moveTo(100,100)

P.P.S. Я также пробовал выполнить команду adb, что-то вроде этого:

  "adb -s shell input touchscreen swipe " + startx + " " + starty + " " + endx + " " + endy + " " + duration"

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


person dmytro Minz    schedule 15.08.2018    source источник


Ответы (2)


Убедитесь, что вы импортировали TouchAction из io.appium.java_client.TouchAction.

import io.appium.java_client.TouchAction;
import io.appium.java_client.touch.WaitOptions;
import io.appium.java_client.touch.offset.PointOption;
import java.util.concurrent.TimeUnit;
import static java.time.Duration.ofSeconds;

TouchAction action = new TouchAction(driver); 
action.press(PointOption.point(115, 650)).waitAction(WaitOptions.waitOptions(ofSeconds(1)))
                .moveTo(PointOption.point(115, 350)).release().perform();

Обновлено: вам необходимо обновить версию selenium-java до последней стабильной версии.

import org.openqa.selenium.interactions.touch.TouchActions;

//AppiumDriver<WebElement> driver;
TouchActions action1=new TouchActions(driver);
    action1.scroll(element,x1,x2).perform();
person Suban Dhyako    schedule 16.08.2018
comment
TouchActions - это не TouchAction. Это разные библиотеки. На самом деле TouchAction - я пробовал, и он отлично работает, но методы устарели (moveTo) см. Мою тему. Но TouchActions - имеет метод прокрутки, который я хочу использовать, но получаю ошибку при инициализации строки объекта TouchActions. - person dmytro Minz; 16.08.2018

Вот прекрасно работающие команды.

     TouchAction action = new TouchAction(driver); 
             action.press(PointOption.point(115, 915)).waitAction(WaitOptions.waitOptions(Duration.ofSeconds(3)))
                             .moveTo(PointOption.point(115, 150)).release().perform();
person Kumar Patel    schedule 28.02.2019