我正在使用java和appium为Android / iOS编写移动应用程序自动化测试用例。
我已将appium版本从3.1.0升级到4.0.0。现在我无法使用scrollTo()和scrollToExact()
Java客户端ReadMe自述文件说明如下: -
scrollTo()
和scrollToExact()
已弃用。它们将在下一个版本中删除。
除了滑动方法和其他方法之外的任何其他方法 喜欢
((MobileElement)element).swipe(SwipeDirection.UP,100);
是否有人知道替换scrollTo
和scrollToExact
的任何可能方法?
答案 0 :(得分:1)
在Appium的讨论区上查看this response。
基本上,旧滚动方法的相同内容仍然可用(Android / iOS ui automator);这只是意味着您可以创建自己的帮助程序以满足您的确切需求。
答案 1 :(得分:0)
此方法已弃用,因为它不一致且将被删除。实际上是解决方法。
建议改为使用:
AppiumDriver.swipe(int, int, int, int, int)
MobileElement.swipe(SwipeElementDirection, int)
MobileElement.swipe(SwipeElementDirection, int, int, int)
或使用
搜索元素MobileBy.ByAndroidUIAutomator
指定者:
scrollTo in interface ScrollsTo<org.openqa.selenium.WebElement>
<强>参数:强>
text - 元素的描述或文本滚动到
<强>返回:强>
匹配
现在向用户swipe
public abstract void swipe(int startx, int starty, int endx, int endy, int duration)
从界面复制的说明:
TouchShortcuts
在屏幕上滑动的便捷方法。
<强>参数:强>
startx - 开始x坐标
starty - 开始y坐标。
endx - 结束x坐标
endy - 结束y坐标
持续时间 - 整个滑动操作的时间量(以毫秒为单位)
示例:
@Test
public void swipingVertical() throws InterruptedException {
//Get the size of screen.
size = driver.manage().window().getSize();
System.out.println(size);
//Find swipe start and end point from screen's with and height.
//Find starty point which is at bottom side of screen.
int starty = (int) (size.height * 0.80);
//Find endy point which is at top side of screen.
int endy = (int) (size.height * 0.20);
//Find horizontal point where you wants to swipe. It is in middle of screen width.
int startx = size.width / 2;
System.out.println("starty = " + starty + " ,endy = " + endy + " , startx = " + startx);
//Swipe from Bottom to Top.
driver.swipe(startx, starty, startx, endy, 3000);
Thread.sleep(2000);
//Swipe from Top to Bottom.
driver.swipe(startx, endy, startx, starty, 3000);
Thread.sleep(2000);
}
这肯定适用于新版本的Java Client 4.0来执行Appium脚本
问候:
Gaurav Lad