如何从APPIUM中的脚本滚动列表
Posted
技术标签:
【中文标题】如何从APPIUM中的脚本滚动列表【英文标题】:How to scroll the list from script in APPIUM 【发布时间】:2018-05-26 23:16:03 【问题描述】:您好,我正在 android 中使用 APPIUM。我需要做的是明智地滚动列表页面。 我尝试了以下操作。
MobileElement element =(MobileElement)driver.findElement(By.className("android.widget.ListView"));
javascriptExecutor js = (JavascriptExecutor) driver;
HashMap<String, String> scrollObject = new HashMap<>();
scrollObject.put("direction", "down");
scrollObject.put("element", ((RemoteWebElement) element).getId());
js.executeScript("mobile: scrollTo", scrollObject);
这可行,但列表会不断滚动,直到显示最后一个元素。我需要做的是明智地滚动列表页面。
【问题讨论】:
【参考方案1】:这对我有用。
List<WebElement> list = driver.findElements(By.xpath("//android.widget.TextView[@resource-id='com.imdb.mobile:id/label']"));
if (list != null && !list.isEmpty())
WebElement bottomElement = list.get(list.size() - 1);
WebElement topElement = list.get(0);
TouchAction touchAction = newTouchAction(driver).press(bottomElement).moveTo(topElement).release();
touchAction.perform();
【讨论】:
【参考方案2】:既然它是一个可滚动的列表,如何使用UiScrollable
,例如
driver.FindElement(MobileBy.AndroidUIAutomator("new UiScrollable(
new UiSelector().scrollable(true).instance(0)).scrollIntoView(
new UiSelector().resourceId(\"" + id + "\").instance(0))"))
更多选项here
【讨论】:
嗨,dmle,感谢您的回复,这也将列表滚动到最后一个元素。我想要的是单击列表的第一个元素做某事按下并单击下一个项目,依此类推,直到最后一个元素。请提供任何建议。 没有看到你的屏幕xml很难帮助你,但如果你有相同属性的元素并使用我以正确的方式发布的方法=>它应该滚动到第一个元素,因为它有@ 987654324@以上是关于如何从APPIUM中的脚本滚动列表的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 TouchAction 滚动 Appium 1.7.1
使用移动设备滚动日期选择器:appium 中的 selectPickerWheelValue