儘管這個線程相當老舊,但目前的硒和Firefox版本仍然存在這個問題。我現在已經有很長時間了這些非常惱人的信息,沒有很好的解決方法。詢問devolopers /郵件列表/谷歌通常會導致以下答案:
在您的應用程序中使用的JavaScript太胖或錯誤,改善您的腳本將有所幫助。
由於在大公司中這是沒有選擇的,所以當你依賴一個你無法訪問的框架時,我決定尋找自己的根本原因。
問題的核心在於,如果您指定-timeout nnnn
參數,硒將覆蓋配置文件設置。因此,創建一個自定義的Firefox配置文件模板,並設置和dom.max_chrome_script_run_time
將無法在這裏工作。
只要您指定參數-timeout
,這兩個設置就會被您提供給參數的值覆蓋。經過調試和測試的時間,我注意到一些事實:
- 如果不指定
-timeout
,Firefox的運行進行精確的30分鐘後,沒有一個腳本超時。在這之後,firefox被硒與SeleniumCommandTimedOutException
- 殺死只要您指定
-timeout
(無論哪個值),腳本超時會在幾秒或幾分鐘後出現。這些消息獨立於超時值。
-browserTimeout
參數不是有用的,因爲我還沒有找到該參數在源中使用的位置。
因爲我們有運行超過30分鐘,我們有2個選項來解決這個問題的一些測試包:
- 重寫我們的測試包和分裂他們的30分鐘窗口
- 修補硒中運行運行時間超過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();
如果有必要,我會上傳預編譯的罐子上面的補丁。
我編輯了我的問題以表明值已經是「0」(零),表明一切都應該被禁用。然而,這種警告仍在出現。思考這是一個硒錯誤,但不確定。 – Dave