XPath中的.//和// *有什么区别?通过Firebug找到相对的XPath:它创建了类似的.//*[@id='Passwd']---------如果我们在开始时不使用dot表示什么呢?只需添加//*Xpath - 它突出显示---各种页面元素----------它表示什么?以下是Gmail密码字段的XPath。有什么意义*?.//*[@id='Passwd']//child::input[@type='password']
3 回答
aluckdog
TA贡献1847条经验 获得超7个赞
这里有几个不同的关键XPath概念......
绝对vs相对XPath(/
vs .
)
/
引入绝对位置路径,从文档的根开始。.
从上下文节点开始引入相对位置路径。
命名元素vs任何元素(ename
vs *
)
/ename
选择一个ename
根元素./ename
选择ename
当前节点的所有子元素。/*
选择根元素,无论名称如何。./*
或者*
选择上下文节点的所有子元素,而不管名称。
后代或自我轴(//*
)
//ename
选择ename
文档中的所有元素。.//ename
选择ename
上下文节点或其下的所有元素。//*
选择文档中的所有元素,无论名称如何。.//*
选择上下文节点处或下方的所有元素,无论名称如何。
考虑到这些概念,以下是您具体问题的答案......
.//*[@id='Passwd']
表示选择当前上下文节点或其下具有id
属性值等于的 所有元素'Passwd'
。//child::input[@type='password']
可以简化为,//input[@type='password']
并且意味着选择input
文档中type
属性值等于的所有元素'password'
。
慕桂英546537
TA贡献1848条经验 获得超10个赞
XPath中的点称为“上下文项表达式”。如果在表达式的开头加上一个点,它将使其特定于上下文。换句话说,它将id="Passwd"
在您调用“通过XPath查找元素”方法的节点的上下文中搜索元素。
将*
在.//*[@id='Passwd']
帮助匹配任何元素用id='Passwd'
。
添加回答
举报
0/150
提交
取消