无法通过Java selenium单击表中的第一个元素

时间:2017-12-06 14:20:48

标签: java selenium-webdriver

我必须点击表格中的第一个链接。 无法单击该链接,它的id和xpath在创建新记录时发生变化,如下所示:

Action  Exception Number                        
Edit | Del  EX-0000529

Edit | Del  EX-0000528

Edit | Del  EX-0000527

Edit | Del  EX-0000526

Edit | Del  EX-0000525

HTML如下:

 <td class="x-grid3-col x-grid3-cell x-grid3-td-NAME " tabindex="0" 
 style="width:251px;">
 <div id="a3h290000001fC6_NAME" class="x-grid3-cell-inner x-grid3-col-NAME">
 <a href="/a3h290000001fC6">
 <span>EX-0000529</span>
 </a>
 </div>
 </td>
 <td class="x-grid3-col x-grid3-cell x-grid3-td-NAME " tabindex="0" 
  style="width:251px;">
  <div id="a3h290000001f9v_NAME" class="x-grid3-cell-inner x-grid3-col-
  NAME">
  <a href="/a3h290000001f9v">
  <span>EX-0000528</span>
  </a>
  </div>
  </td>

2 个答案:

答案 0 :(得分:1)

提供的html显示要单击的表元素具有链接。首先获取所有链接,然后您可以按索引点击所需的链接。

下面是可以使用的示例代码。

java.util.List<WebElement> links = driver.findElements(By.tagName("a"));
System.out.println(links.size());
for (WebElement elem : links)
{
    elem.click();
}

如果您只想点击第一个链接,那么只需使用下面的行而不是for循环。

links.get(0).click();

答案 1 :(得分:0)

要点击表格中的第一个链接,即 EX-0000529 ,您可以使用以下代码行:

driver.findElement(By.xpath("//td[@class='x-grid3-col x-grid3-cell x-grid3-td-NAME']//following::span[1]")).click();