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

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

梅修贤
2023-03-14

我正纠结于一个原生Android应用程序上的导航抽屉。

共有1个答案

戚兴思
2023-03-14

你可以试试我下面有的东西。这使用了PageObject模型,以及Selenium和Appium。它利用了uiAutomator而不是XPath。

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来实现快速和肮脏的操作,那么就像(可能需要一些程序集):

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();
    }
}
 类似资料:
  • 问题内容: 我试图通过将所有参数元素为type_id =“ 4218”的所有“ ”元素从URL解析XML文件? XML文件: 这是我的Java代码: 这段代码给了我所有元素,我不想要,我想要属性type_id =“ 4218”的所有元素! 问题答案: XPath是您的正确选择: 并遍历

  • 我仍然是networkx的初学者,我想在不同的位置添加多种类型的节点,我使用了以下代码 但是当我想访问Graph X时,如果我键入X.node它会返回一个空列表,如果我想添加更多节点,我必须在开始时使用pos字典设置它们的位置。 如何使用add_node()将节点添加到特定位置x和y的图形中

  • 我有一个汽车列表,其中每辆汽车都有一个发动机,该发动机是通过界面定义的。在本例中,具体类型为具有可变气缸数的燃烧发动机和电动机。 我想找到所有四缸的(内燃机)发动机。使用Java流,我想出了这个管道: 虽然这样做可行,但我想知道是否可以避免在第二个过滤器谓词中进行强制转换,或者完全重写管道以提高可读性? 为了便于参考和体验,我附上了示例的完整来源:

  • 问题内容: 我将如何获取Java中int的特定子集(例如5-10位)? 寻找一种可以传递特定位位置的方法。我不确定如何创建一个根据输入而变化的遮罩,或者即使那是应该如何做的也不确定。 我知道这是如何让前台说出一个int的10位:(我认为)int x = num >> 22; 问题答案: 假设您有一个数字,并希望从到(i = 5,j = 10)。 请注意,这将为您提供最后一点 会给你结果。 左侧很明

  • 问题内容: 在XML文档中,我具有共享相同名称的元素,但是属性的值定义了它是什么类型的数据,并且我想从文档中选择所有具有特定值的元素。我是否需要使用XPath(如果可以,您是否可以建议正确的语法)还是有更优雅的解决方案? 这是一些示例XML: 我想选择类型为的所有子代标签的内容。 PS-我正在尝试使用PHP与Netflix API进行接口-这对我的问题无关紧要,但是如果您想提出一种更好的方法,我非

  • 问题内容: 我正在编写一个简单的Java程序。我需要从输入中获取一个字符串并将其分为两部分:1-double 2-string。然后,我需要对double进行简单的计算,并将结果发送到具有特定精度的输出(4)。它工作正常,但是当输入为0时出现问题,则不能正常工作。 例如,对于这些输入,输出将是: 1公斤 输出:2.2046 3.1公斤 输出:6.8343 但是当输入为0时,输出应为0.0000,但