2010-01-04 51 views
4

我們正在使用硒進行一些測試。我們爲此專用了Windows XP虛擬機,每臺虛擬機上有一臺硒化物服務器,並且沒有其他進程在該虛擬機上運行。我們爲每個測試打開和關閉硒會話。測試在完成時總是調用selenium.stop()。很多時候(30分之1我會說)一個測試掛起,當我查看已分配給它的機器的桌面時,我看到一個彈出窗口「Firefox已經運行,但沒有響應。新窗口,您必須先關閉現有的Firefox進程,或重新啓動系統。「Selenium - 「Firefox已在運行」錯誤

  • 我相信只有一個測試用虛擬機在給定時間
  • 通信 所有的測試,確保他們完成何時停止()的硒。
  • 我們有非常詳細的日誌記錄,並且 日誌顯示在得到 「firefox已在運行」錯誤的測試之前沒有任何測試有任何 問題。
  • 應該得到這個錯誤的測試 任意的,因爲它調用selenium.start之後 發生()和 因此沒有任何具體 代碼引起的。
  • 的刪除是所有測試

什麼導致這個相同的,我該怎麼預防呢?

+0

其他問題:它是否一直導致問題的*相同*測試,或者不同的問題?這個測試在做什麼(你可以粘貼代碼)?它是否做了與其他測試不同或不同的事情?這個測試的拆解設置是否做了不同或不尋常的事情? – 2010-01-04 20:59:40

+0

@John Feminella - 加入 – olamundo 2010-01-04 21:29:31

回答

0

我們發現在我們的例子中,這個原因與硒完全無關 - firefox本身只是遇到麻煩,因爲它運行在沒有足夠CPU和\或RAM的機器上。我們升級了VM(例如增加了更多的RAM和CPU),問題幾乎完全消失。

+0

儘管實際上我有6 GB的RAM和空閒四核CPU,但我仍然收到相同的錯誤。 – Nowaker 2011-07-13 19:31:17

+0

@Damian Nowak - 當firefox打開得太快而沒有給selenium創建的臨時配置文件留下足夠的時間時,也可能發生這種情況......這是我唯一的猜測... – olamundo 2011-08-10 11:32:04

2

當Selenium運行您的集成測試時,它實際上會爲每個測試啓動一個新的Firefox副本。如果測試卡住了,並且現有的Firefox配置文件以相同的配置文件運行,它將無法啓動下一個。 (這是一個Firefox的限制,而不是硒一個。)你應該確保:

  • 您的拆卸方法每次關閉瀏覽器Selenium.stop
  • 您使用超時和WaitFor*()方法來限制量測試可以花費執行指令的時間
  • 您正在使用單獨的配置文件讓Selenium運行(如果您沒有更改任何設置,您應該自動運行),與任何其他可能已經啓動的Firefox配置文件截然不同機器
+0

我想你的意思是selenium.stop(),不是嗎? 此外,我正在積極監測測試 - 它正在調用stop(),它並沒有揮之不去,正如你所說,我*希望*那個indees,因爲沒有任何東西在硒機上運行,​​沒有硒該機器上的其他Firefox配置文件 – olamundo 2010-01-04 15:41:26

+0

對不起,是的,我的意思是停止()。另外,你能描述一下發生的事情的生命週期嗎? *每一次新的測試都是以這種方式進行,還是僅在某些測試後纔會發生?在什麼情況下會發生?這是在Windows VM上嗎? (編輯您的原始問題,以便人們可以提供幫助。) – 2010-01-04 15:54:42

+0

我盡我所能編輯了我的問題,請告訴我是否還有其他數據。 此外,我認爲這使得你當前的答案不相關(因爲你建議的場景是不可能的) – olamundo 2010-01-04 20:00:56

1

也許嘗試將環境變量MOZ_NO_REMOTE設置爲1(或使用-no-remote開關)。

+0

聽起來很有趣。你能否詳細說明爲什麼應該修復這個錯誤? – olamundo 2010-01-06 11:53:57

+0

坦率地說,我不知道爲什麼這會起作用 - 只是它在過去爲我解決了同樣的問題。 MozillaZine知識庫中的這個頁面似乎是信息量最大的頁面http://kb.mozillazine.org/Opening_a_new_instance_of_Firefox_with_another_profile – 2010-01-06 12:31:13

+0

似乎可以解決這個問題:Firefox不啓動,因爲已經有一個實例運行配置文件,該選項強制ff使用新配置文件啓動新進程 – 2013-07-10 07:58:35

相關問題