如何使用appium在具有recyclerview的android本机应用程序中滚动屏幕

我正在尝试自动化使用 recyclerview 构建的应用程序。总共有 10 个图块,在一个屏幕中,第 4 个图块将可见,要获得其他图块,我需要向上移动屏幕。我尝试通过查找坐标和 "(AndroidElement)driver.findElement(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().resourceIdMatches(\".*id/type_text\")).setMaxSearchSwipes(5 ).scrollIntoView("new UiSelector().text(\"" + text + "\"))"))" 但是屏幕上有轻微的移动,无法获取剩余的图块。有什么办法可以滚动到屏幕底部,这样我也可以获得最后一个图块。



墨色风雨
浏览 159回答 3
3回答

慕运维8079593

MobileElement&nbsp;listItem=(MobileElement)driver.findElement(MobileBy.AndroidUIAutomator("new&nbsp;UiScrollable(new&nbsp;UiSelector()).scrollIntoView(text(\"<Mention&nbsp;your&nbsp;element&nbsp;text&nbsp;value&nbsp;here>\"))"));您可以像这样修改@sammar 的代码以滚动到该元素。

动漫人物

请尝试这个。我认为你的 UiScrollable 有问题..MobileElement&nbsp;listItem=(MobileElement)driver.findElement(MobileBy.AndroidUIAutomator("new&nbsp;UiScrollable(new&nbsp;UiSelector()" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;".scrollable(true)).scrollIntoView(" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;"new&nbsp;UiSelector().text(\"<Mention&nbsp;your&nbsp;element&nbsp;text&nbsp;value&nbsp;here>\"))"));

HUX布斯

我使用了错误的元素。我不断尝试,终于在使用坐标后成功了。代码如下所示。在主页类中创建了scroll(),并从我的测试类中调用了相同的内容public void scroll(int x, int y) {&nbsp; &nbsp; int startY = (int) (driver.manage().window().getSize().getHeight() * 0.90);&nbsp; &nbsp; int endY = (int) (driver.manage().window().getSize().getHeight() * 0.10);&nbsp; &nbsp; TouchAction action = new TouchAction(driver);&nbsp; &nbsp; action.press(point(x, startY)).waitAction(waitOptions(ofSeconds(3))).moveTo(point(x, endY)).release().perform();}MobileElement startElement = (MobileElement) driver.findElementById("mention parent element here");Point location = startElement.getLocation();&nbsp; &nbsp; homepage.scroll(location.x,location.y);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java