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

Проблемы с браузером Firefox во время прогона автотестов Webdriver

java
firefox
webdriver
Теги: #<Tag:0x00007f7b618be708> #<Tag:0x00007f7b618be5c8> #<Tag:0x00007f7b618be488>

(Алексей Смиян) #1

Добрый день.

Появились проблемы с браузером во время тестов. Браузер Firefox46, автотесты написаны на #webdriver . Запускаю их прямо из среды IntellijIDEA. Есть пакет из 7 тестов, общая длительность которых до трех минут. И ближе к концу браузер начинает тормозить, и заканчивается все тем,что всплывает окно “Firefox, работа прекращена”. Бывает такое, что страница открыта, но половины элементов нет.

Раньше я каждый тест заканчивал закрытием браузера. И новый тест создавал новый обьект браузера. Но меня попросили переписать тесты так, чтобы браузер не закрывался. Возможно проблемы как-то связаны и с этим.

Посоветуйте как можно разобраться с этой проблемой.

И еще есть вопрос. Какой браузер оптимальнее для автотестов? Возможно стоит попробовать перевести тесты на Chrome?


(Максим Неверный) #2

Начну в последнего:
да, можно, только нужен chrome driver
Теперь по основному вопросу: встречался с похожей проблемой ранее. Selenium очень чувствителен к версии браузера. Попробуйте обновить его или откатиться на более позднюю версию.


(Максим Неверный) #3

Хотя, у меня 46.0.1 версия и тесты работают стабильно, что при запуске из IDE, что из jenkins


(Алексей Смиян) #4

В хроме уже пробовал запускать эти же тесты. Работает быстрее. Но нужно дописывать прокрутку страницы в некоторых местах (в файрфоксе сама прокручивается) и не всегда находит те элементы, которые находились в файрфоксе. Нужно дописывать индивидуальные ожидания.


(Максим Неверный) #5

Пишу на python, прокрутку к нужному элементу на странице можно попробовать организовать подобным способом
driver.find_element_by_name('name').send_keys(Keys.PAGE_DOWN)
можно ещё подождать, пока элемент точно станет доступен, например так:
wait.until(EC.element_to_be_clickable((By.name, 'name')))


(Алексей Смиян) #6

У меня Java. Возможно кому-то пригодится:
Прокрутка страницы до нужного элемента:

  ((JavascriptExecutor) driver).executeScript(
                "arguments[0].scrollIntoView();", buttonPublishTender);

Ожидание элемента пока нашел такое. Работает:

Wait<WebDriver> wait = new WebDriverWait(driver, 5, 1000);
wait.until(ExpectedConditions.elementToBeClickable(driver.findElement(By.id("addQuestButton"))));

(Roma Marinsky) #7

Зачем вы запускаете тесты в ff версии 46, если текущая версия ff уже 50. По общим стандартам тестирования правильная практика конфигаурационного тестирования это текущая и -2 версии прошлые. Или же отход от такой практики навязан/основан на статистике окружения пользователей вашего продукта


(Roma Marinsky) #8

Возможно у вас компьютер слабенький, хотя вряд ли это могло вызвать такие симптомы.
Попробуй последнюю версию фф 50 и используй geckodriver, проверь что будет в таком случае.

Если для пробы и локально запускать тесты, то отлично пойдёт chrome, но для нормального прогона всё же лучше использовать 2 или более различных браузера


(Алексей Смиян) #9

Я пробовал запускать автотесты на версиях 47 ++, но тесты не запускались. Читал, что с более новыми версиями Selenium не дружит. Поэтому запускаю в 46.


(Roma Marinsky) #10

Скачай последний geckodriver и заработает с последними версиями, это типичная проблема фф, максимальная поддерживаемая стандартным драйвером это 47.0.1

И то нет смысла 47 держать, по стандартам тебе нужно проверять версию минимум 48