通过 Firebug 查找相对 XPath 时:它会创建类似
.//*[@id='Passwd']
--------- 如果我们在开头不使用点它的含义会怎么样?
只需添加//*
在 Xpath 中——
它突出显示 --- 各种页面元素 ---------- 代表什么?
以下是 Gmail 密码字段的 XPath。有什么意义*
?
这里有几个不同的、关键的 XPath 概念在起作用......
绝对 XPath 与相对 XPath (/
vs .
)
-
/
引入从文档根部开始的绝对位置路径。
-
.
引入从上下文节点开始的相对位置路径。
命名元素与任何元素(ename
vs *
)
-
/ename
selects an ename
root element
-
./ename
选择全部ename
上下文节点的子元素。
-
/*
selects the root element, regardless of name.
-
./*
or *
选择上下文节点的所有子元素,无论名称如何。
后代或自身轴 (//*
)
-
//ename
selects all ename
elements in a document.
-
.//ename
选择全部ename
上下文节点处或之下的元素。
-
//*
selects all elements in a document, regardless of name.
-
.//*
选择上下文节点处或下方的所有元素,无论名称如何。
考虑到这些概念,以下是您的具体问题的答案......
-
.//*[@id='Passwd']
意味着选择位于或下方的所有元素
上下文节点有一个id
属性值等于'Passwd'
.
-
//child::input[@type='password']
可以简化为//input[@type='password']
并意味着选择所有input
元素
在文档中有一个type
属性值等于'password'
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)