我正在尝试使用Java在APK页面中向下滚动。我正在使用Appium和Selenium。
我试过了:
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("window.scrollBy(0,250)", "");
和driver.scrollToExact();
命令但“WebDriver”不支持它们。
我该怎么做?
答案 0 :(得分:0)
您可以使用滑动方法
driver.swipe(startx, starty, endX, endy, 3000);
我找到了一篇可以帮助您完成任务的文章: -
http://www.software-testing-tutorials-automation.com/2015/11/appium-how-to-swipe-vertical-and.html
希望它会对你有所帮助:)。
答案 1 :(得分:0)
如果您想使用Appium在Mobile应用程序上滚动页面,可以使用Appium驱动程序使用以下代码
语法:driver.swipe(startX,startY,endX,endY,duration);
示例:
driver.swipe(200, 900, 200, 100, 2000);
如果您想在浏览器中滚动网页,可以使用传统的滚动方式使用javascript。
答案 2 :(得分:0)
你应该试试这个:
JavascriptExecutor jse = (JavascriptExecutor) driver;
jse.executeScript("scroll(0, 250)");
答案 3 :(得分:0)
以下是所有方向的滑动操作:
public static void swipe(MobileDriver driver, DIRECTION direction, long duration) {
Dimension size = driver.manage().window().getSize();
int startX = 0;
int endX = 0;
int startY = 0;
int endY = 0;
switch (direction){
case RIGHT:
startY = (int) (size.height /2);
startX = (int) (size.width * 0.90);
endX = (int) (size.width * 0.05);
break;
case LEFT:
startY = (int) (size.height /2);
startX = (int) (size.width * 0.05);
endX = (int) (size.width * 0.90);
break;
case UP:
endY= (int) (size.height * 0.70);
startY = (int) (size.height * 0.30);
startX = (size.width / 2);
break;
case DOWN:
startY = (int) (size.height * 0.70);
endY = (int) (size.height * 0.30);
startX = (size.width / 2);
break;
}
new TouchAction(driver)
.press(startX, startY)
.waitAction(Duration.ofMillis(duration))
.moveTo(endX, startY)
.release()
.perform();
}
这段代码有一些不赞成使用的部分,但尝试了所有其他方法,并不像这段代码那样高效。
它在几个项目中帮助了我。