在Selenium中查找元素时, XPath 中的“ .//”,“ //”,“ ./”和“ /” 有什么区别?描述。
答案 0 :(得分:3)
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)
答案 1 :(得分:1)
.//
-匹配表达式的所有节点的相对选择//
-匹配表达式的所有节点的绝对选择./
-不是有效的XPath表达式/
-选择文档的根节点更多信息:
答案 2 :(得分:1)
xpath中点(。)的含义:
“ /”单斜杠和“ //”双斜杠的含义:
问题的答案:
.//-搜索后代或自身节点,分别对应当前节点
/-搜索子节点
有关更多信息,请参见: https://www.linkedin.com/pulse/basics-xpath-pritam-maske/