从firefox测试切换到Internet Explorer测试后,selenium无法找到一些元素。
我找到了一个定位器:
xpath=(//a[@class='someclass'])[2]
虽然它在firefox下应该工作,但它无法在ie中找到这个元素。 我现在有什么替代品? JS DOM? CSS选择器?这个定位器怎么样?
更新
我将举一个例子说明我的观点:
<ul>
<li>
<a class='someClass' href="http://www.google.com">BARF</a>
</li>
<li>
<a class='someClass' href="http://www.google.de">BARF2</a>
</li>
</ul>
<div>
<a class='someClass' href="http://www.google.ch">BARF3</a>
</div>
以下xpath不起作用:
//a[@class='someclass'][2]
根据我的理解,这应该与:
相同//a[@class='someclass' and position()=2]
我没有任何节点的第二个孩子的链接。我想要的是,从'someClass'类的链接集中寻址一个链接。
答案 0 :(得分:3)
如果不了解HTML源代码的其余部分,很难为您提供有效保证的替代方案。希望以下建议能帮助您指明正确的方向:
//a[@class='someClass'][2]
这就像你的例子,但不需要这些例子。
//a[contains(@class, 'someClass')][2]
即使链接中包含其他类,也可以使用。
css=a.someClass:nth-child(2)
如果链接是其父级的第二个子元素,这将仅。
<强>更新强>
//body/descendant::a[@class='someClass'][2]