Недавно мы начали тестировать наше приложение на основе Django с использованием Selenium.Тесты работают нормально в Linux, но некоторые не работают на Mac OS X. Мы используем Firefox в качестве браузера в обоих случаях, и нам потребовалось некоторое время (и немного удачи), чтобы выяснить, что важное различие между этими двумя случаями заключается в том,FF работает как приложение переднего плана или как фоновое окно.Вот что происходит в Linux:
- Selenium указывает Firefox перейти на страницу регистрации пользователя.
- Selenium заполняет имя пользователя и неверный адрес электронной почты.
- Selenium меняет фокус с поля адреса электронной почты на другое поле на той же странице (это окно поиска, но это не важно - все, что имеет значение, это событие смены фокуса).
- Код проверки Javascript на веб-странице замечает, что адрес электронной почты является недействительным, и вставляет сообщение об ошибке на странице.
- Selenium обнаруживает это сообщение об ошибке и отмечает тест как пройденный.
Однако, когда мы работаем в Mac OS X, шаг № 4 не выполняется , если только мы вручную не открываем окно Firefox во время выполнения теста - если мы оставляем его вВ фоновом режиме (где он появляется по умолчанию), Javascript в браузере не получает событие изменения фокуса, поэтому сообщение об ошибке никогда не вставляется в DOM страницы, поэтому Selenium tя ожидаю его, и тест не пройден.
Можем ли мы заставить Selenium запускать браузер на переднем плане при запуске тестов, чтобы наш Javascript получал события так, как мы этого хотим?Если да, то как?