我已经尝试了互联网上所有可用的方法,但没有一个有效。
使用 Appium 1.15 和 Java-Client 7.0.0。
问题是, 如果,
driver.findElementByAndroidUIAutomator("new UiScrollable( new UiSelector().scrollable(true).instance(0)).scrollIntoView"+"(new UiSelector().text(\"" + text + "\").instance(0))");
使用,然后它不断滚动直到页面末尾,然后失败。对我来说,“文本”不仅仅是一个按钮或文本框。它可以是页面上的一个简单的非功能性文本,下面将显示一个下拉菜单。
在另一种方法中:
TouchAction action = new TouchAction((PerformsTouchActions) driver);
WebElement phone = driver.findElement(start);
WebElement contact = driver.findElement(end);
action.press((PointOption) phone)
.waitAction()
.moveTo((PointOption) contact)
.release()
.perform();
在查找元素本身时失败。这意味着,它不会从 driver.findElemet(start) 行开始,因为该元素位于屏幕底部,我正是需要滚动到该位置。
请帮忙!
最佳答案
如果元素定位器正确并且您确认,请尝试使用 driver.flick()
命令。它无需等待即可执行相同的操作。 “等待时间”(您在任何滚动类函数中使用“持续时间”参数定义它)有许多不同设备屏幕尺寸的问题。
例如:您有 3 个元素是一个页面: A 、 B 、 C 您尝试在 5 英寸屏幕尺寸中从 A 滚动到 B。相同的代码可能在 7 英寸屏幕尺寸中从 A 滚动到 C! 所以 driver.flick() 解决了这个问题。
关于java - 基于 Android 模拟器中特定定位器的最佳向上/向下滚动方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60496468/