首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用appium和java向下滚动点击Android中的元素?

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

Stack Overflow用户
提问于 2017-10-04 01:47:41
回答 8查看 38.3K关注 0票数 6

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

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

我只需要滚动并点击相关元素的文本(“Apple”,"Orange","Grapes".....)

我遵循了很多教程,但都做不好。我已经设法向下滚动屏幕了。但当元素位于滚动的中间位置时,它将不起作用。

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

代码语言:javascript
复制
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());
        }

谢谢。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2017-10-16 17:27:37

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

代码语言:javascript
复制
public void scrollAndClick(String visibleText) {
     androidDriver.findElementByAndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textContains(\""+visibleText+"\").instance(0))").click();
        }
    }
票数 16
EN

Stack Overflow用户

发布于 2020-01-10 20:03:09

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

代码语言:javascript
复制
TouchActions action = new TouchActions(driver);
action.scroll(element, 10, 100);
action.perform();
element.click();
票数 3
EN

Stack Overflow用户

发布于 2017-10-06 23:06:15

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

代码语言:javascript
复制
   String uiSelector = "new UiSelector().textMatches(\"" + text
                        + "\")";

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

    driver.findElementByAndroidUIAutomator(command);

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46550497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档