Использование селекторов CSS для доступа к определенным строкам таблицы с помощью selenium
Если у меня есть следующий 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 с селеном для доступа к элементу 4 (или действительно любому элементу, который я хотел)?
5 ответов
вы можете использовать селектор nth-child:
#items tr:nth-child(4) {color:#F00;}
живой пример:http://jsfiddle.net/Flack/G8QPB/
но не знаю, работает ли он с селеном.
но, согласно документам, он должен.
В настоящее время локатор селекторов css поддерживает все селекторы css1, css2 и css3, кроме пространства имен в css3, некоторые псевдоклассы (: nth-of-type,: nth-last-of-type,: first-of-type,: last-of-type,: only-of-type, :visited,: hover,: active, : фокус,: неопределенный) и псевдо-элементы (:: первая строка,:: первая буква,:: выбор,:: до,:: после).
можно попробовать поиск по любой внутренний текст
css=td:contains('Item 4')
нашел это полезным: http://saucelabs.com/blog/index.php/2010/01/selenium-totw-css-selectors-in-selenium-demystified/
вы хотите выбрать по содержанию ("пункт 4")? По положению (4-й ряд)? Или <tr id="foo">
и выбрать
tr#foo>td
вариант?
вы можете использовать xpath, чтобы найти его несколькими способами, но самый простой:
//td[text()='Item 4']