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

Фотография

webDriver не находит элемент по css селектору, хотя в selenium IDE тес

webDriver не находит элемент

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

#1 Xsovich

Xsovich

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

  • Members
  • Pip
  • 6 сообщений
  • ФИО:Олег Андреевич
  • Город:СПб


Отправлено 20 октября 2016 - 09:08

   Добрый день! Возможно кто-то сталкивался с подобной проблемой. Написал кейс в selenium ide, тест работал и проблем с элементами не было. Тест я начал переносить в testNg и тут столкнулся с проблемой, что webDriver не находит элемент по css селектору. 

Ошибка:

org.openqa.selenium.TimeoutException: Timed out after 20 seconds waiting for presence of element located by: By.cssSelector: a[class="gi-icon-caret-left2"]:contains(Мои роли)

 

в коде ждем элемент так:

 

wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector("a[class=\"gi-icon-caret-left2\"]:contains(Мои роли)")));

 

Падает везде, где есть кириллица. Для меня такая проверка удобна тем, что я сразу проверяю наименование элемента, хотелось бы по-возможности избежать разбиения этого шага на 2- ожидание элемента по другому селектору и ассерту имени элемента.

 

 

Возможно есть смысл вообще отказаться от переноса? Но тогда проект сервера непрерывной интеграции(Team City) будет у меня похож на смесь бульдога с носорогом, так как у нас на UI пока не все данные можно создать необходимые для тестирования и я использовал TestNg для создания данных рестами.


  • 0

#2 user12

user12

    Специалист

  • Members
  • PipPipPipPipPip
  • 894 сообщений
  • ФИО:Виктор
  • Город:Минск


Отправлено 20 октября 2016 - 10:09

a[class=\"gi-icon-caret-left2\"]:contains(Мои роли)

 

 

Как минимум "Мои роли" должны быть в кавычках

 

Но в любом случае были траблы с contains и css

 

Перепишите на Xpath

 

[contains(text(), 'Мои роли')]


  • 2

#3 Xsovich

Xsovich

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

  • Members
  • Pip
  • 6 сообщений
  • ФИО:Олег Андреевич
  • Город:СПб


Отправлено 20 октября 2016 - 12:15

 

a[class=\"gi-icon-caret-left2\"]:contains(Мои роли)

 

 

Как минимум "Мои роли" должны быть в кавычках

 

Но в любом случае были траблы с contains и css

 

Перепишите на Xpath

 

[contains(text(), 'Мои роли')]

 

Спасибо, проверил с xpath-заработало. Css и с кавычками не заработал. Очень жаль конечно, css больше по душе был.


  • 0

#4 elvis

elvis

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

  • Members
  • PipPipPip
  • 189 сообщений
  • Город:Tallinn


Отправлено 21 октября 2016 - 07:52

 

 

a[class=\"gi-icon-caret-left2\"]:contains(Мои роли)

 

 

Как минимум "Мои роли" должны быть в кавычках

 

Но в любом случае были траблы с contains и css

 

Перепишите на Xpath

 

[contains(text(), 'Мои роли')]

 

Спасибо, проверил с xpath-заработало. Css и с кавычками не заработал. Очень жаль конечно, css больше по душе был.

 

Вы всегда можете проверить себя вбив локаторы в консоль браузера. $$("css локатор") или $x("//xpath локатор")


  • 1

#5 Xsovich

Xsovich

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

  • Members
  • Pip
  • 6 сообщений
  • ФИО:Олег Андреевич
  • Город:СПб


Отправлено 21 октября 2016 - 21:07

 

 

 

a[class=\"gi-icon-caret-left2\"]:contains(Мои роли)

 

 

Как минимум "Мои роли" должны быть в кавычках

 

Но в любом случае были траблы с contains и css

 

Перепишите на Xpath

 

[contains(text(), 'Мои роли')]

 

Спасибо, проверил с xpath-заработало. Css и с кавычками не заработал. Очень жаль конечно, css больше по душе был.

 

Вы всегда можете проверить себя вбив локаторы в консоль браузера. $$("css локатор") или $x("//xpath локатор")

 

Я проверял локаторы в Selenium и они были рабочие, не знал, что при переносе бывает такое. Теперь буду знать.  Спасибо за совет.


  • 0


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

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