css запрос на селен - PullRequest
       32

css запрос на селен

1 голос
/ 03 октября 2011
css=table#playlistTable tr:nth(0) span[class='playlistNumDisplay smallFont']

Я получаю ошибку в этом css выше. В основном я хочу перейти к первому значению 'tr' в разделе 'PlaulistTable', а затем в первом значении 'tr', которое я хочу выбрать span [class = 'playlistNumDisplay smallFont']

что я тут не так делаю? спасибо за помощь

Ответы [ 2 ]

0 голосов
/ 03 октября 2011

Не пытайтесь играть в сложные CSS с Selenium.Вы можете попробовать что-то, что вы использовали в jQuery, но это не существует в CSS или, по крайней мере, в текущей версии CSS, поддерживаемой браузером, на котором вы это пробовали.'nth' может быть примером этого.

Итак, упрощая его до:

css=table#playlistTable tr:first-child span.playlistNumDisplay.smallFont

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

.

Обратите внимание , что :first-child - это CSS 2.1, тогда как :nth-child() и селекторы значений атрибутов (как в [class='...']) - это CSS 3, что означает больше поддержки браузера для первого, чем для других.

.

Одна вещь, которая также помогает, - это использование локатора jQuery, который может быть реализован так:
Как добавить локаторы JQuery в Selenium Remote Control
Конечно, будут ограничены страницы, поддерживающие jQuery.Кстати, мы использовали это именно на очень крупном сайте электронной коммерции довольно успешно.

0 голосов
/ 03 октября 2011

Вы, вероятно, имели в виду :nth-child(1) или :nth-of-type(1), а не просто :nth(0), что является недействительным CSS.

Если вы специально ищете первый матч, вы также можете использовать :first-child или :first-of-type вместо nth-() вариантов.

Quirksmode имеет хороший список доступных селекторов здесь http://www.quirksmode.org/css/contents.html (вместе с диаграммой совместимости браузера, хотя я не думаю, что она будет иметь отношение к вам в контексте запроса Selenium)

Надеюсь, это поможет.

...