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

Фотография

Вопрос по использованию CssSelector


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

#1 Lemur

Lemur

    Опытный участник

  • Members
  • PipPipPipPip
  • 265 сообщений
  • ФИО:Левиков Владимир Владимирович

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

Здравствуйте!
Возник вопрос в использовании CssSelector. Есть вот такая структура:
<div>
 <span class="button_c">
  <a href="/link1.html">Link1</a>
 </span>
</div>
<div>
 <span class="button_c">
  <a href="/link2.html">Link2</a>
 </span>
</div>

Мне нужно обратится к Link2. Я пытался следующим образом:
span.button_c[1]>a
, но вылетает ошибка "InvalidSelectorException".
Что я делаю не правильно?
Использую: WebDriver+c#
  • 0

#2 astafev

astafev

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

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

Отправлено 29 февраля 2012 - 08:39

скобки круглые
  • 0

#3 Lemur

Lemur

    Опытный участник

  • Members
  • PipPipPipPip
  • 265 сообщений
  • ФИО:Левиков Владимир Владимирович

Отправлено 29 февраля 2012 - 09:22

скобки круглые

Попробовал круглые скобки, тоже не работает.
  • 0

#4 soleksenko2702

soleksenko2702

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

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

Отправлено 29 февраля 2012 - 10:44

Здравствуйте!
Возник вопрос в использовании CssSelector. Есть вот такая структура:

<div>
 <span class="button_c">
  <a href="/link1.html">Link1</a>
 </span>
</div>
<div>
 <span class="button_c">
  <a href="/link2.html">Link2</a>
 </span>
</div>

Мне нужно обратится к Link2. Я пытался следующим образом:
span.button_c[1]>a
, но вылетает ошибка "InvalidSelectorException".
Что я делаю не правильно?
Использую: WebDriver+c#


Как вариант могу предложить воспользоваться xpath.
//span/a[contains(text(),'Link2')]

Либо если хотите именно css, то попробуйте это:
a:contains('Link2')

Посмотрите здесь: http://www.simple-ta...-rosetta-stone/
Как по мне очень полезный документ.
  • 0

#5 Lemur

Lemur

    Опытный участник

  • Members
  • PipPipPipPip
  • 265 сообщений
  • ФИО:Левиков Владимир Владимирович

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


Здравствуйте!
Возник вопрос в использовании CssSelector. Есть вот такая структура:

<div>
 <span class="button_c">
  <a href="/link1.html">Link1</a>
 </span>
</div>
<div>
 <span class="button_c">
  <a href="/link2.html">Link2</a>
 </span>
</div>

Мне нужно обратится к Link2. Я пытался следующим образом:
span.button_c[1]>a
, но вылетает ошибка "InvalidSelectorException".
Что я делаю не правильно?
Использую: WebDriver+c#


Как вариант могу предложить воспользоваться xpath.
//span/a[contains(text(),'Link2')]

Спасибо заработало. А можете сказать где по подробнее описано про функции для Xpath? В вашем примере используется text(), а какие еще есть?
  • 0

#6 soleksenko2702

soleksenko2702

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

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

Отправлено 29 февраля 2012 - 12:48

Ну во-первых ссылка которую я уже давал. Как я и писал довольно интересная и полезная.
Также можете посмотреть здесь:
http://automated-tes...base/tags/xpath
и здесь
http://xpath.alephza...cheatsheet.html

Ну и вообще Google рулит:
http://www.w3schools...h_functions.asp
http://ru.wikipedia.org/wiki/XPath
  • 1

#7 astafev

astafev

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

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

Отправлено 01 марта 2012 - 07:30


скобки круглые

Попробовал круглые скобки, тоже не работает.

Почему не работает, давайте разберемся.
Вот так не работает?: span.button_c(2)>a
или так: span.button_c(2) a
А в Selenium IDE или других всяких находилках типа FireFinder?
  • 0

#8 appmen

appmen

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений
  • ФИО:Victor

Отправлено 01 марта 2012 - 08:50

в ЦСС я использую для такого <element>:nth-child(2) или <element>:nth-child(2n) (вроде последний вариант более граммотный, исходя из документации). Вообще ЦСС позволяет проделывать очень много манипуляций с элементом, вам следует почитать документацию по нему и потренироваться.
Хотя, если у вас работает тот Хпас..
<element>:contains('link2') - это должно обязательно работать
  • 0

#9 Lemur

Lemur

    Опытный участник

  • Members
  • PipPipPipPip
  • 265 сообщений
  • ФИО:Левиков Владимир Владимирович

Отправлено 01 марта 2012 - 09:24



скобки круглые

Попробовал круглые скобки, тоже не работает.

Почему не работает, давайте разберемся.
Вот так не работает?: span.button_c(2)>a
или так: span.button_c(2) a
А в Selenium IDE или других всяких находилках типа FireFinder?

Не работают оба варианта.
  • 0

#10 astafev

astafev

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

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

Отправлено 01 марта 2012 - 10:23


Почему не работает, давайте разберемся.
Вот так не работает?: span.button_c(2)>a
или так: span.button_c(2) a
А в Selenium IDE или других всяких находилках типа FireFinder?

Не работают оба варианта.

А без класса? А без двойки? Вы где все это проверяете?
  • 0

#11 Lemur

Lemur

    Опытный участник

  • Members
  • PipPipPipPip
  • 265 сообщений
  • ФИО:Левиков Владимир Владимирович

Отправлено 01 марта 2012 - 11:39



Почему не работает, давайте разберемся.
Вот так не работает?: span.button_c(2)>a
или так: span.button_c(2) a
А в Selenium IDE или других всяких находилках типа FireFinder?

Не работают оба варианта.

А без класса? А без двойки? Вы где все это проверяете?

Я просто в коде меняю значение, и прохожу это место через отладчик. Без двойки работает, находит элемент Link1.
  • 0

#12 astafev

astafev

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

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

Отправлено 02 марта 2012 - 05:57

Мда... И с чего это мы взяли что это будет работать... Надо было просто посмотеть документацию, как всегда) http://www.w3.org/TR...ors/#selectors. Вот как надо было делать:
span.button_c:nth-of-type(2) a

Я просто в коде меняю значение, и прохожу это место через отладчик.

Это ж долго, почему бы не пользоваться тем же firefinder или selenium IDE?
  • 0


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

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