元素不再附加到链接的Dom错误

时间:2014-03-02 23:01:22

标签: selenium xpath

我尝试根据func param给出的linkText(例如Westwood或Linda)从锚点获取href。 在下面的代码中,我更改了类值(公司信息的原因),但除此之外的代码。对于每个<tr><td>的href都相同,但与<tr><tr>不同 我得到了第一个href:

driver.findElemnt(By.xpath("//a[@class = 'class Name of a']").getAttribute("href")  

或与之相同:

xpath="//a[@class = 'class Name of a'][1]";

但是当我走的时候:

"//a[@class = 'class Name of a'][2]"  or 3 or 4... 

或我使用时:

By.partialLinkText 

它失败了,所以我永远不会超越第一个<td>的第一个<tr>

  

错误:oopenqa.selenium.StaleElementReferenceException:Element   不再依附于Dom。

元素始终可见,因此它不是可见性问题。

这是html:

<tr class="Class name for tr here">       
    <td headers="description _ CustomerList:lastName">
        <a href="some path index=0" class="class Name of a">Westwood</a>
    </td>

    <td headers="description _CustomerList:firstName">   
        <a href="some path index=0" class="class Name of a">Linda</a>
    </td>
</tr>

1 个答案:

答案 0 :(得分:1)

您正在尝试检索同一父中的第二个锚标记(在示例文档中:表格单元格)。

而不是

//a[@class = 'class Name of a'][2]

查询整个文档中的第二个锚标记:

(//a[@class = 'class Name of a'])[2]

如何使用位置谓词的更多示例(我在此省略了类谓词):

  • 每行所有第二个表格单元格的锚标记:

    //td[2]/a
    
  • 每行第二个锚标记:

    //tr//a[2]