2012-10-03 51 views
1

我是watir-webdriver的常用用戶。一個夢幻般的寶石,但我有一個越來越多的瀏覽器問題,新的關閉。我運行一個Ubuntu機器,它處理一些後臺任務,通過watir webdriver啓動一個Firefox瀏覽器。當計算機運行數小時後,通常會處理超過100個作業,然後關閉瀏覽器開始成爲問題。他們佔用記憶,最終使計算機阻塞,迫使我重新啓動。Watir-webdriver - 強制firefox關閉

begin 
    b = Watir::Browser.new :firefox, :profile => 'default' 
    # Goto a few pages 
    b.close 
rescue => e 
    b.close 
    raise e 
end 

任何想法,我能做些什麼來解決這個問題:

即使我做這樣的事情會發生的問題?有沒有辦法確保在發生異常時強制退出進程?我如何調試它?

我經常看到一些超時異常,說無法綁定到鎖定端口或無法獲得穩定的連接。

BTW紅寶石1.9.3,Ubuntu的12.04的Watir-的webdriver 0.6.1

回答

2

試試這個:

begin 
    b = Watir::Browser.new :firefox, :profile => 'default' 
    # Goto a few pages 
ensure 
    b.close 
end 
+0

這樣做和救援有什麼區別? –

+0

http://stackoverflow.com/a/2192010/17469 –

0

您可能需要調查無頭的解決方案,如headless gemCelerity

無頭的寶石仍然驅動瀏覽器,只是不顯示。然而,Celerity包裝HTMLUnit,這是一個虛擬瀏覽器,具有良好的JavaScript支持。我一直在使用Celerity來運行自動化測試,並且它已經很強大。主要的警告是它只是JRuby。

另一種選擇是使用更精簡的瀏覽器,例如webkit。

+0

謝謝,但我已經使用了無頭的寶石,但仍統計在後臺運行一個Firefox的應用。 –

+0

是的,我對服務器上的瀏覽器驅動程序沒有太多的好運。一旦我切換到Celerity,我沒有那麼多問題。 –

+1

我使用PhantomJS作爲無頭瀏覽器,它幾乎是功能完整的WebKit實現:http://phantomjs.org/ - 雖然不會幫助跨瀏覽器測試,但對單元測試很有幫助! – dain