cgp*_*cgp 10 selenium xpath selenium-rc
我有HTML,看起来基本上如下:
...
<a class="btnX btnSelectedBG" href="#"><span>Sign in</span></a>
...
Run Code Online (Sandbox Code Playgroud)
Selenium中的以下xpath无法找到元素:
//a[contains(text(), 'Sign in') and contains(@class,'btnX')]
Run Code Online (Sandbox Code Playgroud)
Selenium中的以下xpath成功,但对我来说不够具体.
//a[contains(text(), 'Sign in')]
//a[contains(@class, 'btnX')]
Run Code Online (Sandbox Code Playgroud)
为什么xpath无法找到元素,我该怎么做才能让它工作?
Emi*_*ggi 15
匹配其他元素的Sign in直接子项a或子项的情况:
//a[contains(@class,'btnX') and .//text()='Sign in']
我的意思是
<a class="btnX btnSelectedBG" href="#">Sign in</a>
和
<a class="btnX btnSelectedBG" href="#"><b>Sign in</b></a>
// a [contains(@ class,'btnX')和span [text()='登录']]不是一个好主意,因为你要在DOM中搜索每个锚点,然后尝试将它与你的搜索条件.
理想情况下,您希望将XPath键入具有ID的第一个上升元素,然后按照树的方式工作.
例如,如果您的HTML是
<div id="foo">
<a class="btnX btnSelectedBG" href="#"><span>Sign in</span></a>
</div>
Run Code Online (Sandbox Code Playgroud)
你可以使用:
//div[@id='foo']/a[contains(@class, 'btnX')][span[.='Sign in']]
Run Code Online (Sandbox Code Playgroud)
不幸的是,我不知道页面结构的其余部分,所以我不能给你更具体的东西:
//a[contains(@class, 'btnX')][span[.='Sign in']]
Run Code Online (Sandbox Code Playgroud)
但它真的不是一个非常好的xpath.
(我的XPath看起来与你略有不同,因为我使用过.作为text()的快捷方式和第二组[]作为和的快捷方式
| 归档时间: |
|
| 查看次数: |
43119 次 |
| 最近记录: |