在java客户端v4.0中替换scrollTo和scrollToExact

时间:2016-07-06 13:04:50

标签: java android scroll appium swipe

我正在使用java和appium为Android / iOS编写移动应用程序自动化测试用例。

我已将appium版本从3.1.0升级到4.0.0。现在我无法使用scrollTo()和scrollToExact()

Java客户端ReadMe自述文件说明如下: - scrollTo()scrollToExact()已弃用。它们将在下一个版本中删除。

除了滑动方法和其他方法之外的任何其他方法 喜欢

((MobileElement)element).swipe(SwipeDirection.UP,100);

是否有人知道替换scrollToscrollToExact的任何可能方法?

2 个答案:

答案 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