【问题标题】:How to identify the cell in the table and click on it?如何识别表格中的单元格并单击它?
【发布时间】:2020-04-03 19:21:38
【问题描述】:

页面上有一个简单的表格,第一个raw是列的标题,第二行/raw是动态变化的值。

<div id = ...>
  <table ...>
    <tbody>
      <tr> ... <tr>
        <tr>
          <td class="x11 x22" nowrap>
             <a class="xl" href="search"> </a> </td>
          <td>...
          <td>...
      ....    

识别单元格的最佳方法是什么 - 第一列/第二行以便点击它? 非常感谢!

【问题讨论】:

  • 取决于标记的其余部分,但您可以使用 //a[@href='search']... 的 xpath 假设这是唯一的。他们真的应该在他们的标记中使用唯一的 ID。
  • href 不是唯一的...
  • 好的,假设这个类也不是唯一的,你需要 dom 遍历,这不是很理想。我会让工程师添加唯一 ID。
  • 可能有一种方法可以构建数组并单击元素 [0,1] 例如?
  • 是的,您可以使用我在 findElements 中发布的相同 xpath...(如果页面是通过 javascript 生成的,如果抛出过时元素异常,您需要循环并重新调用)假设链接是DOM 总是以相同的顺序返回,然后你可以为它选择一个索引。不过仍然是一个非常脆弱的定位器。

标签: java html selenium


【解决方案1】:

如果你想点击第一个元素,那么 xpath 将是:

(//a[@href='search'])[1]

第二个元素是:

(//a[@href='search'])[2]

等等..

完整的代码应该是这样的:

WebElement element = driver.findElement(By.xpath("(//a[@href='search'])[2]"));
element.click();

【讨论】:

  • 使用 find.element ...[2].click() ?
  • @BobBolden 更新了我的答案并添加了代码。请立即查看
猜你喜欢
  • 2015-11-07
  • 1970-01-01
  • 2012-09-29
  • 2013-05-18
  • 2022-11-24
  • 1970-01-01
  • 1970-01-01
  • 2019-10-27
  • 2014-12-13
相关资源
最近更新 更多