XPath中.//和// *有什么区别?
当通过Firebugfind相对的XPath时:它会创build类似的
-
.//*[@id='Passwd']
———如果我们在开始的时候不使用点,它表示什么? -
只需在Xpath中添加
//*
– 它突出显示了各种页面元素———-它是什么意思?
以下是Gmail密码字段的XPath。 *
意义是什么?
-
.//*[@id='Passwd']
-
//child::input[@type='password']
这些expression式都select不同的节点集:
.//*[@id='Passwd']
'。' 开始意味着当前处理从当前节点开始 。 '*'select当前节点下降的所有元素节点,其中@id-attribute-value等于'Passwd'。
如果我们在开始时不使用dot,它表示什么呢?
然后在整个文档中select所有元素节点的@id
-attribute-value等于“Passwd”。
只需在XPath中添加// *即可突出显示各种页面元素
这将select整个文档中的所有元素节点。
下面提到:XPatht的Gmail密码字段是真的什么意义的*?
.//*[@id='Passwd']
这将select从当前节点递减的所有元素节点,其中@id-attribute-value等于“Passwd”。
//子::input[@types= '密码']
这将select所有名为input
子元素节点,其@type
– @type
-values等于'password'。 child::
axis前缀可以省略,因为它是默认行为。
在w3school.com上解释select适当expression式的语法。
轴(处理中的当前点) 在另一个w3school.com页面上解释。
这里有几个不同的关键XPath概念
绝对vs相对XPaths( /
vs。)
-
/
引入绝对位置path,从文档的根部开始。 -
.
从上下文节点开始引入相对位置path。
命名元素vs任何元素( ename
vs *
)
-
/ename
select一个ename
根元素-
./ename
select当前节点的所有ename
子元素。
-
-
/*
select根元素,而不考虑名称。-
./*
或*
select上下文节点的所有子元素,而不pipe名称如何。
-
后裔或自我轴( //*
)
-
//ename
select文档中的所有ename
元素。-
.//ename
ename
select上下文节点处或下方的所有ename
元素。
-
-
//*
select文档中的所有元素,而不考虑名称。-
.//*
select所有元素,而不pipe名称,在上下文节点处或之下。
-
记住这些概念,这里是你的具体问题的答案…
-
.//*[@id='Passwd']
id
'Passwd'
.//*[@id='Passwd']
表示select当前上下文节点中具有id
属性值等于'Passwd'
所有元素。 -
//child::input[@type='password']
可以被简化为//input[@type='password']
并且意味着select文档中所有type
属性值等于'password'
input
元素。
XPath中的点称为“上下文项expression式” 。 如果你在expression式的开始处放一个点,就会使它具有特定的上下文。 换句话说,它将在您要调用“通过XPath查找元素”方法的节点上下文中search带有id="Passwd"
的元素。
*
.//*[@id='Passwd']
id='Passwd'
.//*[@id='Passwd']
的*
有助于匹配任何 id='Passwd'
元素 。
- 对于第一个问题 :这是关于上下文的。 你可以看到Syntax来知道'。','..'等等的意思。 另外,我敢打赌,你不会find比这个链接更好的解释。
- 第二个问题的简单答案 :您通常会find使用像td,a,li,div等html标签的节点。但'*'表示find与您的给定属性匹配的任何标签。 它主要用于确定给定的属性,但不包括元素可能随附的标签,比如假设我想要一个ID为“xyz”的所有元素的列表。
希望它有助于:)
- 如何检查一个string数组是否包含JavaScript中的一个string?
- JetBrains Resharper 9最终testing运行器错误:NUnit.Core.UnsupportedFrameworkException:跳过加载程序集{MyAssembly}
- Python:试图模拟datetime.date.today()但不工作
- Selenium支持无头浏览器testing吗?
- Haskell函数可以certificate/模型检查/validation的正确性属性?
- 设置RSpec来testing一个gem(不是Rails)
- 有没有一个IEtesting的Mac?
- Java基准 – 为什么第二个循环更快?
- Rspec – Rails – 如何遵循redirect