【发布时间】:2016-05-16 08:55:54
【问题描述】:
我知道当我想向下滚动到 appium 中的特定元素时,请使用以下命令
driver.ScrollTo(value);
但是这个值每次都会改变并且无法检测到它我不能使用这个值滚动直到找到元素,但是这个元素是我页面中的最后一个元素并且页面中的元素数量在用户和另一个用户之间发生了变化。
那么,还有其他方法可以向下滚动到页面末尾吗?
【问题讨论】:
标签: c# automation appium
我知道当我想向下滚动到 appium 中的特定元素时,请使用以下命令
driver.ScrollTo(value);
但是这个值每次都会改变并且无法检测到它我不能使用这个值滚动直到找到元素,但是这个元素是我页面中的最后一个元素并且页面中的元素数量在用户和另一个用户之间发生了变化。
那么,还有其他方法可以向下滚动到页面末尾吗?
【问题讨论】:
标签: c# automation appium
使用 xpath 查找元素而不使用 value(因为它是动态的)
然后使用该元素滚动,
WebElement element = driver.findElementByXpath("xpath_of_element");
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element);
只需发布该页面的 DOM..我会给你高效的 xpath,所以即使你的 dom 是动态的,定位器也可以工作......
【讨论】:
scrollToExact 和 scrollTo 方法自 JAVA 客户端版本 4.0.0 (https://github.com/appium/java-client/blob/master/README.md) 起已弃用。
您可以使用UiScrollable 和UiSelector 及其方法滚动任何页面(https://developer.android.com/reference/android/support/test/uiautomator/UiScrollable.html)。
JAVA代码示例(请用C#语法编辑):
@AndroidFindBy (uiAutomator = "new UiScrollable(new UiSelector()).scrollIntoView(new UiSelector().textContains(\"问题 \"))")
如果你想滚动到页面底部,请创建一个方法,该方法将执行几个步骤来查找页面的最后一个元素,否则你会得到一个错误(找不到元素)
【讨论】:
改用触摸动作
TouchAction t = new TouchAction(driver);
t.longPress(element(source)).moveTo(element(destination)).release().perform();
【讨论】: