Мы запускаем некоторые тесты с помощью селена. Мы выделили VM's Windows XP для этого с одним селеном сервер RC на каждом VM и никакой другой процесс, работающий на этом VM. Мы открываем и закрыли сеанс селена для каждого теста. Тесты всегда называют selenium.stop (), когда они заканчивают. Много времен (1 в 30 я сказал бы) один тест зависает, и когда я просматриваю рабочий стол машины, которая была выделена ему, я вижу, что всплывающее окно с "Firefox уже работает, но не отвечает. Для открытия нового окна необходимо сначала закрыть существующий процесс Firefox или перезапустить систему".
Что могло вызывать это, и как я могу предотвратить его?
Мы обнаружили, что в нашем случае причина этого была совершенно не связана с селеном - firefox сам испытывал проблемы, потому что работал на машинах с недостаточным количеством CPU and\or RAM. Мы обновили ВМ (например, добавили больше оперативной памяти и процессора), и проблема исчезла почти полностью.
Когда Selenium запускает ваши интеграционные тесты, он буквально запускает новую копию Firefox для каждого теста. Если тест застрял и существует существующая копия Firefox, запущенная с тем же профилем, он не сможет запустить следующую. (Это ограничение Firefox, а не Selenium.) Вы должны убедиться, что:
Selenium. stop
WaitFor*()
methods to limit the number of a time a test can spend by execution its instructionsВозможно, попробуйте установить переменную окружения MOZ_NO_REMOTE
на 1 (или используйте переключатель -no-remote
).