Хотя этот поток довольно старый, проблема все еще существует с текущими сборками selenium и firefox.Я получил эти действительно раздражающие сообщения довольно долго, без хорошего исправления.В ответ на запрос devolopers / списка рассылки / google обычно получается следующий ответ:
Используемый в вашем приложении javascript слишком толстый или содержит ошибки, поможет улучшение ваших скриптов.
Поскольку в более крупной компании это невозможно, если вы зависите от среды, к которой у вас нет доступа, я решил поискать для себя основную причину.
Суть проблемы заключается в том, чтоСелен переопределяет настройки профиля, если вы укажете параметр -timeout nnnn
.Поэтому создание пользовательского шаблона профиля Firefox и установка dom.max_script_run_time
и dom.max_chrome_script_run_time
не будут работать здесь.
Как только вы укажете параметр -timeout
, эти две настройки будут переопределены значением, которое вы указали дляпараметр.После нескольких часов отладки и тестирования я заметил несколько фактов:
- Если вы не укажете
-timeout
, Firefox будет работать ровно 30 минут без тайм-аута сценария.После этого firefox будет убит селеном с SeleniumCommandTimedOutException
- . Как только вы укажете
-timeout
(независимо от того, какое значение), время ожидания скрипта появится через несколько секунд или минут.Эти сообщения не зависят от значения времени ожидания. - Параметр
-browserTimeout
не используется, так как я не нашел, где этот параметр используется в источнике.
Каку нас есть несколько тестовых наборов, которые работают дольше 30 минут, у нас есть 2 варианта, чтобы исправить это поведение:
- Переписать наши тестовые наборы и разбить их для запуска в течение 30 минут
- Patching selenium toдольше 30 минут
Не используйте параметр -timeout
.
Поэтому выберите для себя, какой вариант лучше.Я создал небольшой и простой патч для HTMLLauncher.java
, чтобы позволить 90 минут вместо 30 по умолчанию.
diff --git a/java/server/src/org/openqa/selenium/server/htmlrunner/HTMLLauncher.java b/java/server/src/org/openqa/selenium/server/htmlrunner/HTMLLauncher.java
index c2296a5..310b39f 100644
--- a/java/server/src/org/openqa/selenium/server/htmlrunner/HTMLLauncher.java
+++ b/java/server/src/org/openqa/selenium/server/htmlrunner/HTMLLauncher.java
@@ -146,6 +146,16 @@
launcher.launchHTMLSuite(suiteURL, browserURL);
sleepTight(timeoutInMs);
+ // SFR, Patch 2013-10-17: To get rid of the damn SeleniumCommandTimedOutException
+ // we allow the Suite to run 3 times as long as per default (30 min -> 90 min).
+ if(results == null) {
+ log.warning("SFR, Patch 2013-10-17");
+ sleepTight(timeoutInMs);
+ }
+ if(results == null) {
+ log.warning("SFR, Patch 2013-10-17");
+ sleepTight(timeoutInMs);
+ }
launcher.close();
Я буду загружать предварительно скомпилированный jar с вышеуказанным патчем, если необходимо.