当前位置: 首页 > 知识库问答 >
问题:

如何向下滚动点击元素在Android使用appium和java?

籍弘伟
2023-03-14

我想知道如何向下滚动点击元素在Android使用appium和java?

我在“android.support.v7.widget.RecyclerView”中有一个元素列表。由于它有10多个元素,我们需要滑动屏幕以查看以下元素。每个元素都有相同的id,即“com.osanda.exampleapp/textViewTitle”。但他们的文本不同,比如“苹果”、“橘子”、“葡萄”。。。。。。

所有我需要的是滚动并使用其文本单击相关元素(苹果,橙色,葡萄......)

我已经学习了很多教程,但都做不好。我已设法向下滚动屏幕。但当元素位于卷轴的中间位置时,它将无法工作。

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

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());
        }

谢谢你。

共有3个答案

党权
2023-03-14

请使用下面的代码。它将滚动直到文本可见。

   String uiSelector = "new UiSelector().textMatches(\"" + text
                        + "\")";

   String command = "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView("
                        + uiSelector + ");";

    driver.findElementByAndroidUIAutomator(command);

现在,您可以在此之后执行单击操作。

姬俊能
2023-03-14

在新版本的Appium中,您可以使用以下内容:

TouchActions action = new TouchActions(driver);
action.scroll(element, 10, 100);
action.perform();
element.click();
姬慎之
2023-03-14

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

public void scrollAndClick(String visibleText) {
     androidDriver.findElementByAndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textContains(\""+visibleText+"\").instance(0))").click();
        }
    }
 类似资料:
  • 我正在尝试向下滚动到一个元素,到处寻找和搜索,没有任何代码帮助向下滚动,我已经尝试了与下面的代码似乎不起作用,任何人给我的解决方案,以完美地向下滚动。由于swipe和scrollTo函数在最新的java客户端版本中被贬低了,一个完美的代码将帮助我解决我的任务

  • 我有一个应用程序页面,我需要垂直滚动,以达到应用程序的底部保存按钮。 我正在尝试下面的代码,但得到服务器端错误。 有什么好方法可以在android中实现滚动功能吗?

  • 我的目标是在下拉列表中向下滚动,直到用户可以看到TN等状态。当scrollTo()方法工作时,这在Appium中是可能的,但在当前的Appium构建中,它们被弃用。我试过驾驶。但是什么也没发生。我不太熟悉iOS谓词,但也尝试过使用它们。 到目前为止,替代方案已经尝试过,但都没有奏效: #1 #2:

  • 我正在android的clock应用程序上尝试一段appium自动化代码,但我的代码倾向于跳过滚动逻辑。我还尝试了findelement()和gettext()来标识该元素,但仍然没有成功。代码如下:

  • 我正在尝试滚动,它不工作的Android和iOS,可以请您帮助我在这一点。 期待你的回音。 我尝试使用ScrollTO和ScrollToExact,因为它们现在都不推荐使用,所以我尝试使用以下内容: 还是不起作用。 我看了很多博客,视频,课程内容和材料,没有人解释或有一个具体的解决方案,如何处理这一点 我尝试了下面的,仍然得到错误 WebDriverException: WebDriverExce

  • 我想通过让Appium点击歌曲名称来播放一首歌。有没有一个代码可以让我通过使用文本字段来点击任何元素?我不能在这里使用资源id字段,因为稍后将有多首歌曲。我尝试使用,但没有效果。