Вау! Автоматизация тестирования с использованием Selenium была для меня захватывающей, когда я начал использовать Selenium. Но со временем вкус селена стал горьким.

Ненадежные тесты
Всегда неприятно видеть, что ваши тесты, запущенные в одной итерации, терпят неудачу во время другой. Я не говорю, что Selenium каждый раз создает ненадежные тесты, но по мере того, как ваш пакет автоматизации становится больше, шансы на то же самое высоки. Мы пробовали множество альтернатив для одного и того же, и в какой-то момент мы поняли, что причина кроется в самом Selenium Webdriver.

Относительный Xpath не совсем относительный
Относительный Xpath начинается с середины структуры HTML DOM. Веб-драйвер Selenium несовместим при работе с относительным Xpath. Мы столкнулись с несколькими случаями, когда относительный xpath не работает, но будет работать в другом прогоне, что очень бесит. Эта проблема была устранена путем размещения абсолютного Xpath вместо относительного Xpath , хотя использование Xpath не рекомендуется при создании пакета автоматизации, который требует длительного выполнения.

Когда ClickElement не щелкает элемент
Когда функция веб-драйвера забывает свою функциональность, нам нужно найти ей альтернативу. Эта проблема была устранена с помощью исполнителя Javascript. Исполнитель Javascript был создан внутри пакета автоматизации Selenium, и этот скрипт вызывался для щелчка в нужной точке.

Проблемы с всплывающим окном
Selenium иногда не выполняет действия, описанные во всплывающем окне предупреждения в Интернете. Интерфейс Webdriver Alert имеет метод отклонения для отмены всплывающего окна, но мы столкнулись с несоответствием этого метода, и мы начали находить элемент с помощью локатора и нажимали кнопку, чтобы решить проблемы такого рода.

Настройка кода для браузеров!
Функции веб-драйвера Selenium в целом должны быть одинаковыми для разных драйверов и версий браузера. Что произойдет, если код веб-драйвера, написанный тестировщиком, будет вести себя по-разному в разных браузерах? Мы столкнулись с несколькими проблемами с Internet Explorer, а затем, чтобы решить эту проблему, нам пришлось писать в коде специальные проверки браузера.

Тот же браузер! Различные версии
Если в вашем браузере включено автоматическое обновление, ваш браузер будет автоматически обновлен, но веб-драйвер вашего браузера будет старым. Некоторые функции веб-драйвера начнут работать со сбоями, если совместимость браузера и веб-драйвера неверна. Это вызвало слишком много сбоев в нашей сборке Jenkins, и мы преодолели это, написав код для автоматического обновления и установки веб-драйвера в операционной системе перед выполнением кода.
Selenium иногда не может выполнить действия, описанные во всплывающем веб-предупреждении. . В интерфейсе предупреждения веб-драйвера есть метод отклонения для отмены всплывающего окна, но мы столкнулись с несоответствием этого метода, и мы начали находить элемент с помощью локатора и нажимали кнопку, чтобы решить проблемы такого рода.