我们正在开发Cordova移动应用程序。在屏幕上,我们有一个表格格式的值列表。如果我们想在移动设备上选择不在可见范围内的元素,我们需要执行滚动操作。已尝试过方法scrollTo()
和scrollToExact()
,但这些方法不会滚动到所需的元素文本,但除此之外,就是列表中的值结束。
移动到本地上下文以执行滚动,结果相同。
此外,尝试了Javascript方法window.scrollTo()
和scrollintoView()
,但滚动移动了所需的元素。
有没有其他方法可以在移动屏幕上实现滚动到必要的元素,这样它就不会滚动到必要的元素之外?
Appium版本:1.2.3
Java客户端版本:2.1.0
答案 0 :(得分:0)
感谢ShlomiTC的帮助,我可以通过首先检查元素是否在屏幕上可用并使用无限循环重复滚动屏幕直到元素被点击为止。如果未单击元素,则会发生异常,因此try / catch块在此处帮助了我。 希望这有助于任何有类似问题的人。
js = (JavascriptExecutor) driver;
js.executeScript("window.scrollTo(0,0)");
do
{
try
{
driver.findElement(By.xpath(<xpathexpresssion>).click();
break;
}
catch(Exception e)
{
js = (JavascriptExecutor) driver;
js.executeScript("window.scrollBy(0, 200)");
}
} while(true);