xpath定位器在FF3中工作,但在IE7中不起作用

时间:2009-10-13 10:15:52

标签: xpath selenium

从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'类的链接集中寻址一个链接。

1 个答案:

答案 0 :(得分:3)

如果不了解HTML源代码的其余部分,很难为您提供有效保证的替代方案。希望以下建议能帮助您指明正确的方向:

  • //a[@class='someClass'][2]
    这就像你的例子,但不需要这些例子。

  • //a[contains(@class, 'someClass')][2]
    即使链接中包含其他类,也可以使用。

  • css=a.someClass:nth-child(2)如果链接是其父级的第二个子元素,这将

<强>更新

  • 根据您的更新,请尝试以下操作:
    //body/descendant::a[@class='someClass'][2]