【问题标题】:Get <tr> tag count within table using xpath使用 xpath 获取表中的 <tr> 标签计数
【发布时间】:2020-12-24 08:40:36
【问题描述】:

我正在尝试使用 xpath 计算下表中的 tr 标签行数:

<table class="table">
<tbody>
<tr>...
<tr>...
<tr>...
<tr>...
</tbody>
</table>

我尝试了以下但它没有给我 4 作为结果。任何人都可以帮助我吗?谢谢。

xpath=//*[@class='table']/tbody//tr

Example Script

【问题讨论】:

  • 请在此处添加您尝试过的javascript代码?
  • 嘿@moufed,我只需要xpath函数,因为我使用selenium ide 3
  • //table[@class='table']//tr 会为你做的很好。

标签: javascript java html selenium automation


【解决方案1】:

您为什么限制自己使用 xPath? 如果在页面上解析 HTML 代码,一个简单的document.querySelectorAll(".table tr").length; 就可以了。 如果 HTML 是字符串,则可以使用正则表达式,如下所示: let rows = str.match(/&lt;tr/g).length;

【讨论】:

  • 嘿 Oskar,感谢您的意见,我现在在这个项目中使用 selenium ide 3。
【解决方案2】:

试试下面的代码 - 确保你使用的是find elements 而不是findElement

driver.findElements(By.xpath("//table[@class='table']/tbody/tr"));

【讨论】:

    【解决方案3】:

    我建议您不要在 XPath 中使用 tbody 标记,因为它可能不在页面源代码中,而是由浏览器添加:

    //table[@class='table']//tr
    

    【讨论】:

    • 虽然我得到了不同的计数,但这真的很有帮助,感谢杰森和其他所有人的帮助。此函数还计算页面上其他表格中的 tr 标签。不完全是我想要的,所以我必须让它在 tr 标签中计算一个唯一元素。在我的例子中,使用了与 tr 标签关联的标题。以下对我有用:xpath=//table[@class='table']//h3
    • @SpaceTech 作为一个选项,您还可以指定所需表的索引,例如//table[@class='table'][1]//tr。但唯一标识符是更好的方法
    • @SpaceTech P.S. XPath 中的索引以 1 开头,这与大多数编程语言中的 0 不同
    猜你喜欢
    • 2019-03-28
    • 1970-01-01
    • 2016-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-13
    相关资源
    最近更新 更多