Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

Selenium не может идентифицировать элемент на странице

xpath
locators
webdriver
Теги: #<Tag:0x00007fedc0eaa668> #<Tag:0x00007fedc0eaa460> #<Tag:0x00007fedc0eaa190>

(Антон Швец) #1

Всем привет. Столкнулся со следующей проблемой:

Использую: @FindBy(xpath = “//input[contains(@id, ‘cart’)]”) для поиска элемента (он выделен синим на скриншоте) в корзине покупалетя (количество товара) с целью изменить это самое количество с помощью sendKeys.
Но в данном случае тест падает с ошибкой:
org.openqa.selenium.ElementNotVisibleException: element not visible

Пробовал и по другому xpath писать, и css использовать, результат один и тот же. Номер в айдишнике элемента меняется динамически.

Может кто подскажет, как решить проблему?

Спасибо.


(Vyacheslav Klevchenya) #2

Идентифицировать то он может. Если бы не мог - был бы NoSuchElementException. А вот кликнуть (?) или ввести значение наверное не может.
Пробуйте “обойти”:

  1. Идите к девелоперам и пусть делают элемент “видимым”
  2. Пробуйте через другие элементы вводить
  3. Делайте “видимым” “через дЖаваскрипт”
  4. Свой вариант :slight_smile:

(Антон Швец) #3

Проблема решилась, xpath был не уникален и находил еще какой-то элемент на странице раньше, который подпадал под этот запрос)

Спасибо, тема может быть закрыта


(HS) #4

расскажите, пожалуйста, по подробнее про видимость через “дЖаваскрипт”


(Oleksii Ihnatiuk) #5

Делать видимость через жс необходимо в очень редких и специфических случаях. Если элемент невидим, то чаще всего он уже есть в доме, но не отображается ещё на UI. Поэтому вам сначала (как и юзеру) нужно совершить какие то действия, чтобы элемент стал видимым.