selenium - 使用 XPath 在 Selenium 中查找元素

标签 selenium selenium-webdriver xpath

在 Selenium 中查找元素时,XPath 中的 ".//"、"//"、"./"和 "/" 有什么区别?描述一下。

最佳答案

XPath 定义:

.// - Find something that is a descendant of the current node
//  - Find something that is anywhere in the DOM
./  - Find a child node of the current node
/   - Find a child of the root of the document

但是在 Selenium 中,.//和//不遵循 XPath 规范,并且含义相同,在本例中是在 DOM 中的任何位置查找某些内容。

*编辑*

由于这似乎有些争议,因此这里有一些附加信息。

Selenium 在其 JavaScript 原子中使用了非常好的 XPath(请参阅 Selenium codebase )。

邪恶的好 XPath 虽然速度很快,但不是完全兼容的 XPath 实现,并且在所有情况下都不能正确实现//因此上面的断言应该将 .//和//都视为运算符来查找中的任何内容DOM(参见 this wicked good XPath issue )

关于selenium - 使用 XPath 在 Selenium 中查找元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56287291/

相关文章:

python - 在 Selenium 中编辑文本字段

java - WebElements 列表中的 Selenium Web Driver Stale Reference 异常

xml - XPath:选择在指定类型的指定位置有子元素的元素

firefox - 如何使用 Firefox Web Developer Plugin 验证 XPath?

javascript - XPath 表达式在 Chrome 中返回 'illegal string specified' 而不是 FF

java - 如何使用 Java 删除 Selenium 中使用的 Web 元素?

perl - 在 Selenium 和 Perl 中使用现有的 Firefox session

html - 如何验证特定文本存在于 Selenium IDE 的属性中

java - 无法在窗口之间切换 - 无法显示浏览器消息

java - dependentOnGroups 顺序-Testng