Перейти к содержимому

Фотография

css selectors #id


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 8

#1 astafev

astafev

    Новый участник

  • Members
  • Pip
  • 42 сообщений
  • ФИО:Евгений

Отправлено 28 февраля 2012 - 07:20

Вот таким селектом пытаюсь взять элемент в WebDriver: driver.findElement(By.cssSelector("tr#"+i+" td:nth-child(3) a"))
Вылетает с исключением: The given selector tr#1 td:nth-child(3) a is either invalid or does not result in a WebElement.

При этом в Selenium IDE он работает отлично. Еще обнаружил, что выбор по id в css селекторах не работает в Firefinder и в Опере.
  • 1

#2 astafev

astafev

    Новый участник

  • Members
  • Pip
  • 42 сообщений
  • ФИО:Евгений

Отправлено 11 марта 2012 - 06:41

Поправка: не работает только если id цифрой. Уже чисто академический интерес: может кто-нибудь знает в чем дело?
  • 0

#3 soleksenko2702

soleksenko2702

    Постоянный участник

  • Members
  • PipPipPip
  • 193 сообщений
  • ФИО:Олексенко Сергей

Отправлено 11 марта 2012 - 12:28

Поправка: не работает только если id цифрой. Уже чисто академический интерес: может кто-нибудь знает в чем дело?


Было бы интерестно посмотреть Ваш HTML
  • 0

#4 astafev

astafev

    Новый участник

  • Members
  • Pip
  • 42 сообщений
  • ФИО:Евгений

Отправлено 19 марта 2012 - 05:07


Поправка: не работает только если id цифрой. Уже чисто академический интерес: может кто-нибудь знает в чем дело?


Было бы интерестно посмотреть Ваш HTML


<tbody>
<tr class="jqgfirstrow" role="row" style="height: auto;">
<td role="gridcell" style="height: 0px; width: 20px;"></td>
<td role="gridcell" style="height: 0px; width: 18px; display: none;"></td>
<td role="gridcell" style="height: 0px; width: 353px;"></td>
<td role="gridcell" style="height: 0px; width: 236px;"></td>
<td role="gridcell" style="height: 0px; width: 236px;"></td>
<td role="gridcell" style="height: 0px; width: 353px;"></td>
<td role="gridcell" style="height: 0px; width: 275px;"></td>
<td role="gridcell" style="height: 0px; width: 275px;"></td>
</tr>
<tr id="1" role="row" class="ui-widget-content jqgrow ui-row-ltr">
<td role="gridcell" aria-describedby="patientsList_cb" style="text-align:center;width: 20px;">
<input role="checkbox" id="jqg_patientsList_1" class="cbox" name="jqg_patientsList_1" type="checkbox">
</td>
<td role="gridcell" style="text-align:center;display:none;" title="" aria-describedby="patientsList_ID">
<input id="rowCheck_1" class="rowCheck" name="selPatient" value="514" type="checkbox">
</td>
<td role="gridcell" style="" title="Иванов Иван Иваныч" aria-describedby="patientsList_LAST_NAME">
<a href="...">Иванов Иван Иваныч</a>
</td>
<td role="gridcell" style="" title="23/03/1999" aria-describedby="patientsList_DATE_BIRTH">23/03/1999</td>
...
</tr>
...
</tbody>
  • 0

#5 kerrigan

kerrigan

    Новый участник

  • Members
  • Pip
  • 9 сообщений
  • ФИО:Ольга
  • Город:Самара

Отправлено 08 июня 2012 - 09:40

решили проблему? или нашли обходные пути??
у меня такая же ошибка. ищу по css = div.gridCell:nth-child(i):nth(j)
  • 0

#6 psihozik

psihozik

    Новый участник

  • Members
  • Pip
  • 39 сообщений

Отправлено 08 июня 2012 - 10:38

Вот таким селектом пытаюсь взять элемент в WebDriver: driver.findElement(By.cssSelector("tr#"+i+" td:nth-child(3) a"))
Вылетает с исключением: The given selector tr#1 td:nth-child(3) a is either invalid or does not result in a WebElement.

При этом в Selenium IDE он работает отлично. Еще обнаружил, что выбор по id в css селекторах не работает в Firefinder и в Опере.

Возможно проблема в том, что i число, а не строка. переведите i из числа в строку. В Selenium IDE все переменные строки, поэтому там проблем нет
  • 0

#7 sawoy

sawoy

    Новый участник

  • Members
  • Pip
  • 51 сообщений
  • ФИО:Alex Savchuk

Отправлено 09 июня 2012 - 19:03

Думаю, что причина в том, что IDE используется библиотека sizzle, которая поддерживает такие селекторы, а "нативный" WebDriver-ский - нет.

Что в общем-то логично - W3C Validator http://jigsaw.w3.org...lidate_by_input на такие селекторы говорит:

Неправильный ID селектора [#1]
Неизвестный псевдоэлемент или псевдокласс :nth


Можно попытаться использовать полный локатор с указанием типа - "sizzle=a#1".

Если это не поможет, то проще упростить CSS селектор или перейти на Xpath etc.
  • 0

#8 astafev

astafev

    Новый участник

  • Members
  • Pip
  • 42 сообщений
  • ФИО:Евгений

Отправлено 13 июня 2012 - 11:40

решили проблему? или нашли обходные пути??
у меня такая же ошибка. ищу по css = div.gridCell:nth-child(i):nth(j)

брал просто элемент по id, и в нем уже искал. Или же xpath-ом...
  • 0

#9 Breetonia

Breetonia

    Активный участник

  • Members
  • PipPip
  • 76 сообщений
  • ФИО:Рымаров Владислав

Отправлено 27 июня 2012 - 19:54

Интересно,сколько времени вы убили на построение подобных селекторов : ).Проще было ид проставить.
  • 0


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных