尝试在像素设备上的android仿真器中自动执行汉堡包菜单。我正在使用Appium并使用android驱动程序进行自动化。我看到scrollTo()
已过时,有人知道该怎么做吗?
答案 0 :(得分:1)
只需使用此简单命令即可使用JAVA中的DesiredCapabilities在appium中滚动。
driver.findElementByAndroidUIAutomator(“ new UiScrollable(new UiSelector())。scrollIntoView(text(\” Your Text \“));”);
希望这会有所帮助
答案 1 :(得分:0)
因此,对此的快速答案是,没有新的方法。据我所知,因为UIAutomator2不允许Appium的驱动程序找到屏幕上没有的元素。我认为UIAutomator2是实现Android 7及更高版本上的设备自动化所必需的。
这意味着在屏幕外时,无法确定元素的方向。因此,如果有人对此有解决方案,我将很高兴听到。
现在,取决于您要自动化的应用程序类型,如果知道它的方向,就可以伪造刷到某个元素。例如,如果您的应用程序仅上下滚动(像许多应用程序一样),则只要您知道该元素是在当前位置之下还是之上,则可以滑动到该位置。这可以通过while循环来完成:
while(elementNotFound) {
if(findElement(byLocator)) {
elementNotFound = !elementNotFound;
}
else {
// This is where you would swipe in the direction of where the element is
}
}
新的刷卡方式是使用TouchAction
类。例如,您可以执行以下操作:
(new TouchAction<>(driver)).press(PointOption.point(startX, position.startY)
.waitAction(WaitOptions.waitOptions(Duration.ofMillis(1000)))
.moveTo(PointOption.point(endX, endY))
.release()
.perform();
或者,您可以将不赞成使用的swipeTo方法与UIAutomator驱动器类型(而不是UIAutomator2)一起使用。再次说明,这仅适用于Android SDK版本较低的设备。
很抱歉,如果这样不能为您提供所需的答案,但是希望至少可以为您提供一种找到所需元素的方法。
答案 2 :(得分:0)
在最新的Appium Java客户端6.1.0中,您可以使用以下代码进行滑动,
new AndroidTouchAction (driver)
.press (PointOption.point (startX, startY))
.waitAction (WaitOptions.waitOptions (Duration.ofMillis (1000)))
.moveTo (PointOption.point (endX, endY))
.release ()
.perform ();
这里startX
,startY
,endX
和endY
需要根据您的需要进行计算。
OR
您甚至可以使用我的开源框架Coteafs-Appium v-3.0来滑动,
SliderActivity slide = new SliderActivity (this.androidDevice);
slide.onElement ("Slider")
.swipe (SwipeDirection.RIGHT, SwipeStartPosition.LEFT, 75);