0

有没有办法迭代地扫描某个表列的每一行,其没有。每次刷新页面时行的变化?

假设我有一个像这样出现在网页上的表格,每行都有单选按钮:

+---+--------+--------+--------+--------+
|   | Letter | Colour | Number | Animal |
+---+--------+--------+--------+--------+
| | A      | Red    | 111    | Dog    |
+---+--------+--------+--------+--------+
| ◯ | B      | Blue   | 222    | Cat    |
+---+--------+--------+--------+--------+
| ◯ | C      | Green  | 333    | Rabbit |
+---+--------+--------+--------+--------+

出现的列始终相同,但行数可能不同。假设我有一个变量:number=222,我必须搜索“Number”列直到找到匹配项,然后单击相应的单选按钮。

我如何能...

  1. 迭代扫描“数字”列中的所有元素?
  2. 单击找到匹配项的行的相应单选按钮?
4

1 回答 1

0

您不需要对表进行任何迭代,只需编写 XPath,使其仅指向某一列中具有特定值的行上的单选按钮。

假设您的 HTML 如下所示:

<table>
    <tbody>
        <tr>
            <th />
            <th>Letter</th>
            <th>Colour</th>
            <th>Number</th>
            <th>Animal</th>
        </tr>
        <tr>
            <td><input type="radio" /></td>
            <td>A</td>
            <td>Red</td>
            <td>111</td>
            <td>Dog</td>
        </tr>
        <tr>
            <td><input type="radio" /></td>
            <td>B</td>
            <td>Blue</td>
            <td>222</td>
            <td>Cat</td>
        </tr>
        <tr>
            <td><input type="radio" /></td>
            <td>C</td>
            <td>Green</td>
            <td>333</td>
            <td>Rabbit</td>
        </tr>
    </tbody>
</table>

在这种情况下,XPath 可能如下所示:

//tr[td[3]='Blue']/td[1]/input

这意味着:在第三列中找到一个具有“蓝色”的行元素,一旦找到,返回该行第一列中的输入元素。

还有其他方法可以实现这一点,XPath 轴可能非常有用:

//tr/td[3][.='Blue']/preceding-sibling::td/input

这意味着:给我找到值为“蓝色”的第三列单元格,一旦找到,返回嵌套在任何前面的单元格中的输入。

第一个更有意义,第二个只是为了表明通常有更多方法可以获取唯一元素识别。

于 2018-09-28T20:17:04.833 回答