Динамический выбор строки таблицы в Automation Anywhere - PullRequest
0 голосов
/ 28 сентября 2018

Есть ли способ итеративно сканировать каждую строку определенного столбца таблицы, чей номер.строк меняется каждый раз, когда вы обновляете страницу?

Предположим, у меня есть таблица, которая появляется на веб-странице примерно так, с переключателями для каждой строки:

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

Отображаемые столбцывсегда одинаково, но количество строк может отличаться.Предположим, у меня есть переменная: число = 222, и я должен искать в столбце «Число», пока не найду совпадение, а затем нажать на соответствующую кнопку-переключатель.

Как мне ...

  1. Итеративное сканирование всех элементов в столбце «Число»?
  2. Нажмите соответствующий переключатель в строке, где найдено совпадение?

1 Ответ

0 голосов
/ 28 сентября 2018

Вам не нужно выполнять какую-либо итерацию по таблице, вам просто нужно написать свой 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

Это означает: найдите мне ячейку третьего столбца со значением 'Blue' и, как только вы это сделаете, вернете вход, вложенный в любую предыдущую ячейку.

Первыйодин имеет больше смысла, второй - просто показать, что обычно существует больше способов добраться до уникальной идентификации элемента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...