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

无法通过Java selenium单击表中的第一个元素,java,selenium-webdriver,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 <td class="x-grid3-col x-gr

我必须点击表格中的第一个链接。 无法单击链接,创建新记录时,其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
 <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>
HTML格式如下:

Action  Exception Number                        
Edit | Del  EX-0000529

Edit | Del  EX-0000528

Edit | Del  EX-0000527

Edit | Del  EX-0000526

Edit | Del  EX-0000525
 <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>

提供的html显示要单击的表元素具有链接。因此,首先获得所有的链接,然后你可以按索引点击你想要的链接

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

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

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

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

请澄清您在代码示例上面的描述。如果OP只想单击第一个元素,而不是使用
for
循环,他可以只使用
链接。获取(0)。单击():)