如何使用 xpath 从 DOM 中的节点获取特定文本

问题描述

考虑如下基于 Angular 的应用程序的 DOM 结构,

我需要从上面的 Node.js 文件获取“禁用”的特定文本。请提出您的建议,我如何才能设法获得该特定文本?

我尝试了一个解决方案,

HTML 代码,例如("<div id="button" class="login-link s-btn_primary" disabled>")

 String value = driver.findElement(By.xpath("//div[@id='button']").getattribute("innerHTML").trim();

解决方法

你可以先取一个像

这样的元素
WebElement element = driver.findElement(By.xpath("//div[@id='button']"));

然后检查它是否有属性(如果有,将所需的值赋给一个字符串):

String fetched = 
        element
                .findElements(By.xpath(".[@disabled]"))
                .size() == 1 ? "disabled" : "";

后面的代码意味着你检查属性是否有disabled属性。如果是,则为字符串分配 disabled 值,如果不是,则分配空值。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...