Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Топ 10 ошибок при работе с Selenium WebDriver (Java)

exceptions
selenium
webdriver
java
Теги: #<Tag:0x00007f7b62b8b688> #<Tag:0x00007f7b62b8b520> #<Tag:0x00007f7b62b8b3b8> #<Tag:0x00007f7b62b8b278>

(Kosmos) #1

Дд, всем.

Разбираюсь с Selenium. И возник вопрос о Топ 10 наиболее распространенных ошибок при написании тестов и как их фиксить?

У меня пока список такой:

  1. NullPointerException - не найден элемент. Или эл-т реально отсутствует на странице или к нему не правильно указан доступ.
  2. Element not attached - либо с использованием new Action(), либо добавить wait до загрузки эл-та
  3. org.openqa.selenium.TimeoutException: Timed out after 12 seconds waiting for element to be clickable - превышено время ожидания появления эл-та. Либо что-то не так в сценарии, либо увеличить время для ожидания ответа.
    4-N. Крайне мало

На 1й приходится до 95% от всех ошибок. Остальные - реже.

А какой у вас опыт?


(Roma Marinsky) #2

staleElementExeption - ультра страшная вещьь


(Kosmos) #3

о, да. И как её решаете?


(Рома Маринский) #4

Селенидом :slight_smile:

А еще страшная вещь, это длинные xpath та и средние и короткие


(Taras) #5

NullPointerException - не найден элемент. Или эл-т реально отсутствует на странице или к нему не правильно указан доступ. - может NoSuchElementException ?


(Vladislav Kulasov) #6

NullPointerException говорит о неправильно написанном тесте или работы фреймворка. Скорее всего у Вас 1


(Kosmos) #7

Это если Exception через try catch делать. Так - java.lang.NullPointerException - все правильно написал.


(Kosmos) #8

50/50. Иногда wait нужно больше указать. Иногда xpath может меняться.


(Oleksandr Romanov) #9

Ошибки:

  • использование Thread.sleep() везде где попало;
  • использование длинных и хрупких Xpath локаторов;
  • отваливающиеся тесты при автоматическом обновлении браузера (когда Вебдрайвер еще не поддерживает новую версию браузера);
  • не соблюдение конвенций ЯП на котором пишутся тесты;
  • попытка запускать тесты параллельно, имею при этом статический инстанс драйвера;
  • хардкодинг url (и других данных - например логинов/паролей) прямо в коде тестов;
  • создание God Page Object;

(Roma Marinsky) #10

Нет не правильно написали вы… Загугли что это значит


(Taras) #11

NullPointerException к тестированию и фреймворку не имеет никакого отношения, он говорит о том что ви колаете непроинициализирований обьект.


(Taras) #12

что правильного ? при чем тут wait i xpath ? WebElement element1; element1.click() - вот виброситься NullPointer, если конечно над element1 нету какой то кастомной анотации которая в рантайме отвечает за его поиск, типа FindBy