有人可以帮我解决这个问题吗?
我遇到一个问题 - Android 应用程序 Listview 无法滚动到底部以使用 java 中的 appium 搜索特定元素
使用的代码是:
HashMap<String, String> scrollObject = new HashMap<String, String>(); RemoteWebElement element = (RemoteWebElement)driver.findElementById(fullListContainer); JavascriptExecutor js = (JavascriptExecutor) driver; String widId = ((RemoteWebElement) element).getId(); scrollObject.put("text", tvProvidername); scrollObject.put("element", widId); js.executeScript("mobile: scrollTo", scrollObject); seleniumFunctions.click(driver, By.name(tvProvidername));
//元素是Listview
//tvProvidername是滚动Listview时要搜索的文本
- 问题描述:原生 Android 应用的 Listview 超过 280 个元素,代码行 'js.executeScript("mobile:scrollTo",scrollObject);'只是执行到 100 个元素,它不会滚动到应用程序中超过 100 个元素,因此当搜索第 100 个元素之后的元素时,脚本会失败。
谢谢, NRM
最佳答案
我能够在 ListView 中向下滚动以使用以下策略查找特定元素,希望这有帮助......(您也可以使用 findElementByText)
boolean token = false;
while(!token) {
try {
if (driver.findElementByID(cellId).isDisplayed()) {
token = true;
System.Out.println("Cell Found;");
}
} catch (Exception e) {
Dimension size = driver.manage().window().getSize();
int starty = (int) (size.height * 0.80);
int endy = (int) (size.height * 0.20);
int x = size.width / 2;
//Vertical scrolling down
driver.swipe(x, starty, x, endy, 4000);
continue;
}
}
关于java - Android应用程序Listview无法滚动到底部以在java中使用appium搜索特定元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25921030/