在使用Firebug寻找相对XPath时:它创建的XPath格式如下:
.//*[@id='Passwd']
---------如果不在开头使用点,它代表什么意思?只需在XPath中添加
//*
-- 它会突出显示--各种页面元素 ---------- 代表什么意思?
以下是Gmail密码字段的XPath。 *
的意义是什么?
.//*[@id='Passwd']
//child::input[@type='password']
在使用Firebug寻找相对XPath时:它创建的XPath格式如下:
.//*[@id='Passwd']
---------如果不在开头使用点,它代表什么意思?
只需在XPath中添加//*
-- 它会突出显示--各种页面元素 ---------- 代表什么意思?
以下是Gmail密码字段的XPath。 *
的意义是什么?
.//*[@id='Passwd']
//child::input[@type='password']
绝对路径 vs 相对路径 (/
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'
的内容进行翻译。这些表达式都选择不同的节点集:
.//*[@id='Passwd']
开头的“.”表示当前处理从当前节点开始。星号选择所有元素节点,这些元素节点是从当前节点开始的,并且具有等于“Passwd”的@id
-属性值。
如果我们在开头不使用点,它意味着什么?
那么您将选择整个文档中具有等于“Passwd”的@id
-属性值的所有元素节点。
只需在XPath中添加 //* -- 它会突出显示各种页面元素
这将选择整个文档中的所有元素节点。
下面提到的:Gmail密码字段的XPatht是真实的,星号的意义是什么?
.//*[@id='Passwd']
这将选择所有元素节点,它们是当前节点的后代,并且其@id
属性值等于“Passwd”。
//child::input[@type='password']
这将选择所有名为input
的子元素节点,它们的@type
属性值等于“password”。由于默认行为,可以省略child::
轴前缀。
有关选择适当表达式的语法,请参见此处在w3school.com上的解释。
而坐标轴(处理中的当前点)则在另一个w3school.com页面上解释。
*
在 .//*[@id='Passwd']
中帮助匹配任何具有id ='Passwd'的元素。