如何使用 appium 和 java 向下滚动以单击 Android 中的元素?

新手上路,请多包涵

我想知道如何使用 appium 和 java 向下滚动以单击 Android 中的元素?

我在“ android.support.v7.widget.RecyclerView ”中有一个元素列表。由于它有超过 10 个元素,我们需要滑动屏幕才能看到下面的元素。每个元素都有相同的 ID,即“ com.osanda.exampleapp/textViewTitle ”。但是他们的文字是不同的,像“苹果”、“橙子”、“葡萄”……

我只需要滚动并使用其文本单击相关元素(“Apple”、“Orange”、“Grapes”……)

我遵循了许多教程,但无法正确完成。我设法向下滚动屏幕。但是当元素处于滚动的中间位置时,它将不起作用。

当我列出元素名称时,它只显示可见元素,而不是所有元素。

 List<WebElement> elements = androidDriver.findElementByClassName("android.support.v7.widget.RecyclerView").findElements(By.id("com.osanda.exampleapp:id/textViewTitle"));
        for(WebElement element : elements) {
            System.out.println(element.getText());
        }

谢谢你。

原文由 Osanda Deshan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 824
2 个回答

我尝试了这个解决方案,它对我有用。

 public void scrollAndClick(String visibleText) {
     androidDriver.findElementByAndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textContains(\""+visibleText+"\").instance(0))").click();
        }
    }

原文由 Osanda Deshan 发布,翻译遵循 CC BY-SA 4.0 许可协议

在新版本的 Appium 中,你可以使用这个:

 TouchActions action = new TouchActions(driver);
action.scroll(element, 10, 100);
action.perform();
element.click();

原文由 Norayr Sargsyan 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题