t.me/atinfo_chat Telegram группа по автоматизации тестирования

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

Теги: #<Tag:0x00007f7487fdc7f0> #<Tag:0x00007f7487fdc660> #<Tag:0x00007f7487fdc520>

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

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

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

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

Спасибо.

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

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

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

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

2 Симпатий

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

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