如何使用TouchActions appium方法滚动页面?

时间:2018-08-15 13:31:52

标签: java scroll appium appium-android

我对Android本机应用程序进行了自动化测试,并被迫出现滚动问题。

我需要滚动Android应用程序页面,并为此搜索下一个方法: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-在这些Automating mobile gestures中可以使用,但是可以使用,但是方法已过时。

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

P.P.S。我也试图执行adb命令,像这样:

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

但是它对我也不起作用,如果可能的话,我想使用本地appium方法。

2 个答案:

答案 0 :(得分:0)

确保从 io.appium.java_client.TouchAction

导入了 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();

答案 1 :(得分:0)

这是完美的命令。

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