【问题标题】:Cannot get 'index' node detail by getAttribute无法通过 getAttribute 获取“索引”节点详细信息
【发布时间】:2018-02-16 09:12:42
【问题描述】:

我是 Appium 自动化的新手,我正在尝试通过在我的代码中使用 .getAttribute 来检索“索引”节点值,但我无法做到。 有什么方法可以检索特定元素定位器的索引?

String x = driver.findElement(By.xpath("//android.widget.TextView[@text='"+str+"']/../..")).getAttribute("index");

【问题讨论】:

  • 你能把你的代码贴在这里吗?
  • 欢迎来到 Stack Overflow!请使用tour,环顾四周,并通读help center,尤其是How do I ask a good question?,我们无法为您提供我们看不到的代码。
  • String x = driver.findElement(By.xpath("//android.widget.TextView[@text='"+str+"']/../..")).getAttribute( "索引");
  • 你能用相关的HTML更新问题吗?
  • 我没有 html,但我已经上传了 Android 设备监视器中显示的元素的层次结构

标签: java selenium appium


【解决方案1】:

您不能使用getAttribute() 方法检索索引值,而是使用诸如计数器之类的东西来识别文本字段在屏幕上出现的次数。

By mySelector = By.xpath("//android.widget.TextView");
List<WebElement> myElements = driver.findElements(mySelector);
int count = 0;
for(WebElement e : myElements) {

    count++;
    if(e.getText().equals(str1)) {
        System.out.println(count); //This will give the index value
    }
    else{
        //do something else
    }
}

【讨论】:

    【解决方案2】:

    要从节点中提取index 属性,您可以编写function(),如下所示:

    public void viewIndex(String str)
    {
        String x = driver.findElement(By.xpath("//android.widget.TextView[.='" + str + "']")).getAttribute("index");
    }
    

    现在,从您的 main()@Test 注释类调用函数 viewIndex() 与预期的 text 如下:

    viewIndex("India Gate");
    

    【讨论】:

    • it doesn't work 没有说明发生了什么错误。使用您当前的代码试验和错误跟踪日志更新问题。
    猜你喜欢
    • 1970-01-01
    • 2018-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-18
    • 1970-01-01
    相关资源
    最近更新 更多