Xpath根据不包含文本的特定td选择tr

时间:2018-06-06 22:46:45

标签: html xpath html-table

我正在尝试编写一个ruby / selenium脚本来单击表格中的第一个复选框,其中该行不包含// tr / td [6]的某些值(复数)。

表格中的每个tr的结构如下:

<tr>
  <td>
    <input name = "checkbox" type = "checkbox"></input>
  </td>
  <td> irrelevant </td>
  <td> irrelevant </td>
  <td> irrelevant </td>
  <td> irrelevant </td>
  <td> text I care about </td>
</tr>

我需要表格中第一个tr的复选框的xpath,其中// tr / td [6]不包含“badtext”且不包含“badtext2”

不完全确定如何为此编写xpath。希望我能够很好地解释这一点。

1 个答案:

答案 0 :(得分:0)

你需要像这样使用not(表达式)函数

//tr/td[6][not(contains(text(),'badtext'))][not(contains(text(),'badtext2'))]

你的最终xpath就像这样

//tr/td[6][not(contains(text(),'badtext'))][not(contains(text(),'badtext2'))]/../td/input[@name='checkbox']

如果要过滤包括文本在内的任何属性,请使用 含有(。, 'badtext')