2012-06-18 165 views
2

我有一個ruby腳本來打開瀏覽器。我已經設置爲首先打開Firefox,然後是Chrome,如果由於某種原因FF失敗 - 就像FF得到更新並且Selenium還沒有趕上。Selenium :: WebDriver Wait(Ruby,Chrome)

等待函數/定義適用於FF,但總是打破Chrome。下面是Chrome瀏覽器啓動的相關代碼:

wait = Selenium::WebDriver::Wait.new(:timeout => $BROWSER_EXPLICIT_WAIT) 

的上述行:聲明像後

b = Selenium::WebDriver.for :chrome 
b.driver.manage.timeouts.implicit_wait = $BROWSER_IMPLICIT_WAIT 

我是相當新的硒還和我用戶wait.until命令代碼在Firefox中正常工作。不過,我想用FF和Chrome來運行我的腳本。有沒有辦法在Chrome和FF中做到這一點?

謝謝

+0

究竟是什麼問題,你看到什麼錯誤? – Amey

+0

這就是implicit_wait命令的結果: 未定義的方法驅動程序爲#(NoMethodError) –

+0

等待= ... $ BROWSER_EXPLICIT_WAIT)行似乎在我當前的開發機器上工作得很好。這很奇怪,因爲我記得它特別不適用於我的原始開發機器(最近遭遇硬盤驅動器問題)。由於我不能重複它,我想現在我不會擔心它。 –

回答

1

現在看到您提供的錯誤,它變得更容易解決。

的原因是 - 你命名的硒驅動程序實例爲b

但定義隱式時間爲

b.driver.manage.timeouts.implicit_wait = $BROWSER_IMPLICIT_WAIT

即與b.DRIVER,因此錯誤信息 - undefined method 'driver' for

將您的命令更改爲

b.manage.timeouts.implicit_wait = $BROWSER_IMPLICIT_WAIT 
+0

當我第一次讀這篇文章時,我認爲沒有辦法解決這個問題。我用於Chrome的確切線路適用於FF。但我決定無論如何測試它。事實證明,我會修復FF來刪除驅動程序部分(btwn b和.manage)。所以瞧,它的工作。謝謝 –