【问题标题】:XPATH - How to select a tr that has several values in the column of the same row in a table?XPATH - 如何选择在表中同一行的列中具有多个值的 tr?
【发布时间】:2014-04-11 14:51:33
【问题描述】:

我有一个包含多行的表,我正在尝试使用 xpath 来查找每一列中包含特定值的行。例如..第 1 列有 id="transactionDetails",第 2 列有 text="VOICE CALL"。

我应该使用什么 XPATH 来获取包含特定列中这两个值的行?

<td class="nmy_vtab_D" nowrap="nowrap" align="right">
<a id="transactionDetails" onclick="document.TRANSACTION_DETAILS.transactionId.value='0_2780001_5170302';document.TRANSACTION_DETAILS.submit();return false;" href="#">02/26/2014 01:39:26</a>
</td>
<td class="nmy_vtab_D" nowrap="nowrap" align="left">VOICE CALL</td>

【问题讨论】:

    标签: javascript html selenium xpath


    【解决方案1】:

    您在那里的标记代表 2 个表格单元格,其中一个包含带有日期文本的链接,另一个单元格包含文本 VOICE CALL。链接元素包含一个 ID,因此如果这确实是您需要的,您可以在 xpath 中使用它来获取整个单元格:

    //a[@id="transactionDetails"]//..
    

    第二个你可以考虑使用文本吗?

    //td[text()=="VOICE CALL"]
    

    【讨论】:

    • 是的,如果我只有一行,它就可以工作。但是如果有更多的行具有相同的 ID="transactionDetails",那么我们需要对第二列进行映射以找到正确的行。
    • 抱歉,我没有正确回答问题。附带说明一下,HTML 元素 ID 应该(必须)是唯一的。 id = name [CS] 此属性为元素分配名称。此名称在文档中必须是唯一的。 Reference ,HTML5 也是如此
    【解决方案2】:

    这个表达式应该适用于这个任务:

    //tr[td[1]/a/@id="transactionDetails" and td[2]/text()="VOICE CALL"]
    

    它选择tr,第一个td有一个a标签,id="transactionDetails",第二个td有一个文本“VOICE CALL”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-20
      • 2017-02-14
      相关资源
      最近更新 更多