Использование селекторов CSS для доступа к определенным строкам таблицы с селеном - PullRequest
10 голосов
/ 21 декабря 2010

Если у меня есть следующий HTML-код:

<tbody id="items">
<tr><td>Item 1</td></tr>
<tr><td>Item 2</td></tr>
<tr><td>Item 3</td></tr>
<tr><td>Item 4</td></tr>
<tr><td>Item 5</td></tr>
<tr><td>Item 6</td></tr>
</tbody>

Как бы я использовал селекторы CSS с Selenium для доступа к элементу 4 (или действительно к любому элементу, который я хотел)?

Ответы [ 5 ]

19 голосов
/ 21 декабря 2010

Вы можете использовать селектор nth-child:

#items tr:nth-child(4) {color:#F00;}

Пример в реальном времени: https://jsfiddle.net/7ow15mv2/1/

Но не знаю, работает ли он с Selenium.

Но согласно документации это должно быть.

В настоящее время локатор селекторов css поддерживает все селекторы css1, css2 и css3, кроме пространства имен в css3, некоторые псевдоклассы (: nth-of-type,: nth-last-of-type,: first-of-type,: last -of-type,: only-of-type,: visit,: hover,: active,: focus,: indeterminate) и псевдоэлементы (:: first-line, :: first-letter, :: selection, :: before , ::после).

2 голосов
/ 14 октября 2011

вы можете попробовать это для поиска по любому внутреннему тексту

css=td:contains('Item 4')

нашел это полезным: http://saucelabs.com/blog/index.php/2010/01/selenium-totw-css-selectors-in-selenium-demystified/

0 голосов
/ 22 декабря 2010

Вы можете использовать xpath, чтобы найти его несколькими различными способами, но самый простой из них:

//td[text()='Item 4']
0 голосов
/ 21 декабря 2010
selenium.getText("css=table>tbody[id=items]>tr:nth-child(3)>td(3)");
0 голосов
/ 21 декабря 2010

Хотите выбрать по содержанию («Элемент 4»)? По позиции (4-й ряд)? Или это <tr id="foo"> и выбрав тр # Foo> тд вариант?

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