我对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方法。
答案 0 :(得分:0)
确保从 io.appium.java_client.TouchAction
导入了 TouchActionimport 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();