Selenium RC: как выбрать элемент в столбце таблицы - PullRequest
5 голосов
/ 16 мая 2011

Скажем, у меня есть таблица, содержащая nos строк, которые неизвестны. ехр столбец1 столбец2 столбец3 xxx yyy "Поиск профиля"

Столбец3 для каждой строки содержит ссылку «Профиль поиска», теперь ясно, что путь xpath этой ссылки будет изменяться в зависимости от строки. Теперь я хочу найти строку в столбце 2 и, если она есть, нужно нажать на ссылку column3. Кто-нибудь, пожалуйста, дайте мне знать, как искать и щелкнуть по нему?

Ответы [ 3 ]

3 голосов
/ 16 мая 2011

Для страницы, подобной этой:

<html><head></head><body>
<table>
    <tbody>
        <tr>
            <td>Number</td>
            <td>Name</td>
            <td>Link</td>
        </tr>
        <tr>
            <td>1</td>
            <td>Tom</td>
            <td>Link</td>
        </tr>
        <tr>
            <td>2</td>
            <td>Jane</td>
            <td>Link</td>
        </tr>
        <tr>
            <td>3</td>
            <td>Jill</td>
            <td>Link</td>
        </tr>
    </tbody>
</table>
</body></html>

Вы можете найти правильное значение, используя XPATH, чтобы сначала найти имя пользователя.Затем относительно этого имени вы можете указать третий столбец относительно найденного имени в таблице.

selenium.click("//table/tbody/tr/td[text()='Jane']/parent::tr/td[3]")

В этом примере он находит первый экземпляр и точное совпадение с Jane во втором столбце.Затем выполняется резервное копирование в строку и назначение (и нажатие) третьего столбца.

0 голосов
/ 16 мая 2011
  1. Выполнить подсчет строк в сгенерированной таблице.int rolesTableRowCount = selenium.getXpathCount("//table[@id='your_table_id']/tbody/tr").intValue();
  2. Если счетчик соответствует ожидаемому результату, вы можете сохранить текст в определенной ячейке.String var = selenium.getText("element_locator");
  3. Проверьте, совпадает ли содержимое var с вашей тестовой строкой.
  4. Если это действительно так, нажмите ссылку "Поиск профиля" в столбце 3.
0 голосов
/ 16 мая 2011

Я бы предложил использовать selenium.click и указать цель, которую вы ищете. Если вы знаете, какой текст вы ищете в столбце 2, вы можете поместить его в выражение XPath и щелкнуть его друга в столбце 3.

Что-то вроде:

selenium.click("//table[@id='yourTableID']/descendant::tr[td[.='"column2text"']]/td[3]/button);
...