2016-11-04 60 views
0

enter image description here我使用webdriver的寶石在我RILS應用:Rails:將Selenium :: Webdriver超時增加到超過45秒,比如說150秒?

gem 'selenium-webdriver', '~> 2.46.2' 
gem 'watir-webdriver', '~> 0.6.11' 
gem 'watir-webdriver-performance', "~> 0.2.4" 

約一次或一天我拿到生產以下錯誤兩次,我明白這是因爲,「webdriver的使用端口7054(以下簡稱「鎖口「)作爲互斥體,以確保我們不會同時啓動兩個Firefox實例。

Selenium::WebDriver::Error::WebDriverError: unable to bind to locking port 7054 within 45 seconds 

有沒有辦法增加webdriver的超時時間爲150秒?或者其他解決方法?

感謝, 格雷格

回答

0

45秒內Selenium::WebDriver::Firefox::Launcher類的常數被定義。紅寶石讓你重新定義常量,所以你可以改變使用const_set值:

Selenium::WebDriver::Firefox::Launcher.const_set('SOCKET_LOCK_TIMEOUT', 150) 

注意,這會給你重新定義一個恆定的警告。如果你想避免的警告,你將需要刪除恆定的第一:

Selenium::WebDriver::Firefox::Launcher.send(:remove_const, 'SOCKET_LOCK_TIMEOUT') 
Selenium::WebDriver::Firefox::Launcher.const_set('SOCKET_LOCK_TIMEOUT', 150) 

(雖然這會讓你改變超時,我不知道這是否會解決您最實際的問題。)