Как заставить Firefox быть приложением переднего плана при тестировании с Selenium в Mac OS X

Недавно мы начали тестирование нашего приложения на основе Django с использованием Selenium .Тесты проходят нормально в Linux, но некоторые не проходят в Mac OS X. Мы используем Firefox в качестве браузера в обоих случаях, и нам потребовалось время (и немного удачи), чтобы понять, что важное различие между этими двумя случаями заключается в работает ли FF как приложение переднего плана или как фоновое окно. Вот что происходит в Linux:

  1. Selenium сообщает Firefox перейти на страницу регистрации пользователя.
  2. Selenium заполняет имя пользователя и недействителен адрес электронной почты.
  3. Selenium переключает фокус с поля адреса электронной почты на другое поле на той же странице (оказывается, это поле поиска, но это не важно - все, что имеет значение, это событие смены фокуса ).
  4. Код проверки Javascript на веб-странице замечает, что адрес электронной почты недействителен, и вставляет сообщение об ошибке в страница.
  5. Selenium обнаруживает это сообщение об ошибке и помечает тест как пройденный.

Однако, когда мы запускаем Mac OS X, шаг №4 не выполняется , если только мы вручную не выводим окно Firefox на передний план во время выполнения теста - если мы оставляем его в фоновом режиме (что это то место, где оно появляется по умолчанию), Javascript в браузере не получает событие смены фокуса, поэтому сообщение об ошибке никогда не вставляется в DOM страницы, поэтому время ожидания Selenium истекает, и тест завершается неудачно .

Можем ли мы заставить Selenium выводить браузер на передний план при запуске тестов, чтобы наш Javascript получал события так, как мы этого хотим? Если да, то как?

10
задан Greg Wilson 24 October 2011 в 20:15
поделиться