我正在编写Selenium脚本。对于包含表格的html页面,我不能使用“css = table tr:nth-child(2)td:nth-child(3)a”来定位表中的链接。 Selenium IDE给我“找不到[错误]定位器”。
但是使用“css = table tr:nth-child(2)”,它可以找到行。 所以我误认为是css定位器,我认为添加“td:nth-child(3)a”应该适用于td中的链接,为什么不呢?
编辑:我正在使用firefox 3.0.15
答案 0 :(得分:8)
鉴于HTML:
<html>
<body>
<table>
<tr><td>Hello</td><td>World</td></tr>
<tr><td>I'm</td><td><a href="http://www.example.com/">Batman</a></td></tr>
</table>
</body>
</html>
您可以使用以下定位器作为第2行第2列中的链接:
css=tr:nth-child(2) > td:nth-child(2) > a
<强>更新强>
经过一些研究后,您的原始定位器应该工作,但不是由于Selenium(http://jira.openqa.org/browse/SEL-698)使用的cssQuery库中的错误。我上面的建议有效,但它确实只是一个解决方法,直到错误修复。不幸的是,考虑到cssQuery已经有一段时间没有更新了,我不确定这将在多久后得到解决。
答案 1 :(得分:0)
Selenium IDE 2.1.0中还存在类似的问题
我正在测试一组网站,以检查特定网址是否已更改。
我应该检查的链接是在一张桌子中,在顶部的第25个左右......
<tr>
<td>
<div align="center">
<font color="#FFFFFF">
<a target="_blank" href="http://[The link I need to test] ...
我已经同时使用了
assertElementPresent //*[starts-with(@href,'The Link')]
和
assertElementPresent //*[contains(@*,'The Link')]
在某些情况下,第一个会找到一个结果,但第二个不会。大多数时候都不会找到链接。