首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Appium在Java中定位具有特定值的子元素

Appium在Java中定位具有特定值的子元素
EN

Stack Overflow用户
提问于 2016-08-08 19:17:11
回答 1查看 2.2K关注 0票数 0

我正在为一个原生Android应用程序的导航抽屉而苦苦挣扎。

因此,抽屉中有11个元素,其中9个是可见的,其余的您必须向下滚动。

Appium Inspector view

这些元素包含两个子元素,first - imageView和second - textView元素。

Appium Inspector view

我想要做的是创建一个方法来迭代可见的抽屉元素,以搜索具有特定名称的元素,然后点击它,如果元素不可见,我将向下/向上滚动抽屉,然后重复迭代。

因此,我需要一个for循环来遍历textView元素,使用文本属性找到需要的元素,然后单击此textView的父元素。

但是,我正在努力使用xpath正确定位元素,而Appium似乎找不到它们。

有人能帮助我理解如何动态地指定xpath,以便我可以遍历元素吗?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-09 03:30:29

你可以试试我下面的方法。它使用PageObject模型,以及Selenium和Appium。它利用的是uiAutomator,而不是Xpath。

代码语言:javascript
复制
public class PageObjectXYZ {

    private AndroidDriver driver;

    @AndroidFindBy(uiAutomator = "new UiSelector().className("android.widget.TextView")")
    private List<MobileElements> someTextViews;

    public PageObjectXYZ(AndroidDriver driver) {
        this.driver = driver;
        PageFactory.initElements(new AppiumFieldDecorator(driver), this);
    }

    public void clickTheOneIWant(String option){
        for(MobileElement me: someTextViews){
            if(me.getAttribute("text").equals(option)){
                this.driver.tap(1, me, 1000);
                break;
            }
        }
    }
}

如果您只想使用xpath快速和肮脏,那么如下所示(可能需要一些程序集):

代码语言:javascript
复制
String x = "//RecyclerView/RelativeLayout/RelativeLayout/TextView";
String y = "//RecyclerView/RelativeLayout/RelativeLayout";

Android driver = new AndroidDriver(new URL("http://localhost:4723/wd/hub"), desiredCapabilities);

Arraylist<MobileElements> arrayTextViews = driver.findElementsByXpath(x);
Arraylist<MobileElements> arrayParentElements = driver.findElementsByXpath(y);

for(int i = 0; i < arrayTextViews.size(); i++){
    if(arrayTextViews.get(i).getText().equals("text I want")){
        arrayParentElements.get(i).click();
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38827852

复制
相关文章

相似问题

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