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

Firefox not responding если в ходе теста происходит редирект


(Эллина Кулагина) #1

Добрый день.

Я тестирую веб-сайт, который в некоторых местах содержит автоматические редиректы с одной страницы на другую.
В Хроме тесты, содержащие редирект, проходят на ура, в Фаерфоксе падают.
Браузер зависает и перестает отвечать, как только время ожилания в тесте и истекает и тест падает, то браузер сразу же приходит в себя и делает вид, что все в порядке.
Сценарий проблемы каждый раз одинаковый:

  1. тест доходит до страницы, на которой есть редирект
  2. сайт перебрасывает пользователя на другую страницу
  3. браузер зависает

У меня Firefox 24.0 и 26.0 на Windows8 - поведение одинаковое.
WebDriver 2.38.0

Заранее спасибо за советы!


(Александр Таранков) #2

А вручную когда этот сценарий проходишь, не зависает FF? Под тем же профилем


(Эллина Кулагина) #3

Нет, вручную все в порядке. Там именно какой-то конфликт web driver’а и браузера случается.


(vmaximv) #4

Вручную с профилем “ВебДрайвера”? Т.е. поставили брейкпоинт на проблемной строчке кода, запустили тесты в дэбаге, на брейке делаем действия руками?

Вообще у вас два варианта:

  1. Надеяться, что кто-нибудь из пользователей встречался с такой проблемой - и ждать что он подскажет решение. Я лично такое поведение встречал только в ИЕ.
  2. Дать воспроизводимый сценарий - что бы каждый мог попробовать у себя и поресерчить в чем там может быть дело.

(Александр Таранков) #5

Ещё можно попробовать:

  1. более старый FF (например, 20) или/и более новый WebDriver
  2. поиграться с настройками профиля FF

Если найдешь решение, пожалуйста напиши сюда


(Sergey Korol) #6

Я недавно встречался с проблемой при отработке JS одного плагина для ФФ. Там скрипт банально лочил весь UI, селениум не мог обратиться ни к одному элементу. Я пробовал дебажить, и каково было мое удивление, но драйвер просто зависал на время выполнения JS скрипта. Причем отсчет таймаута поиска элемента даже не начинался. После завершения работы скрипта, он отпускал UI, но селениум пытался найти элемент, состояние которого уже было изменено. Потому и вылетал таймаут эксепшен. Причем воспроизводилось только на ФФ, перепробовал все актуальные версии / драйвера тоже.
Возможно у вас такая же проблема. Попробуйте продебажить момент перехода и посмотрите, как ведет себя драйвер на этапе поиска нужного вам элемента. Если проблема в JS, то вы ничего не сделаете. Разве что отказаться от поиска элемента, который попадает на состояние лока UI, и явно подождать следующий. Но это скорее workaround. Если проблема не в этом, будем думать дальше. :wink:


(Эллина Кулагина) #7

Проблема внезапно легко решилась обновлением WebDriver до последней версии (41).
Я так же пробовала откатить Firefox до версии 20, но это не помогло.
Зато с последним вебдрайвером работает прекрасно как для 20 так и для последней 28 версии Firefox.
Большое спасибо всем за предложения и идеи! :slight_smile: