2012-12-12 188 views
3

我們一直在chrome和firefox上使用Selenium成功地針對Rails 2運行集成測試。不過,我們最近升級到了Rails 3,並且遇到了創建chrome webdriver實例的問題。Selenium Webdriver無法創建chrome webdriver實例

當我們試圖創建,我們得到以下堆棧:

irb(main):002:0> profile = Selenium::WebDriver::Chrome::Profile.new 
translate])#<Selenium::WebDriver::Chrome::Profile:0x64f2fd0 @extensions=[], @model=nil> 
irb(main):003:0> profile['download.prompt_for_download'] = false 
false 
irb(main):004:0> driver = Selenium::WebDriver.for(:chrome, :profile => profile,  :switches => %w[--ignore-certificate-errors --disable-popup-blocking --disable-translate]) 
ArgumentError: wrong number of arguments (0 for 1) 
    from /var/www/myapp/shared/bundle/ruby/1.8/gems/selenium-webdriver-2.27.2/lib/selenium/webdriver/common/platform.rb:157:in `open' 
    from /var/www/myapp/shared/bundle/ruby/1.8/gems/selenium-webdriver-2.27.2/lib/selenium/webdriver/common/platform.rb:157:in `ip' 
    from /var/www/myapp/shared/bundle/ruby/1.8/gems/selenium-webdriver-2.27.2/lib/selenium/webdriver/common/platform.rb:170:in `interfaces' 
    from /var/www/myapp/shared/bundle/ruby/1.8/gems/selenium-webdriver-2.27.2/lib/selenium/webdriver/common/port_prober.rb:23:in `free?' 
    from /var/www/myapp/shared/bundle/ruby/1.8/gems/selenium-webdriver-2.27.2/lib/selenium/webdriver/common/port_prober.rb:5:in `above' 
    from /var/www/myapp/shared/bundle/ruby/1.8/gems/selenium-webdriver-2.27.2/lib/selenium/webdriver/chrome/service.rb:33:in `default_service' 
    from /var/www/myapp/shared/bundle/ruby/1.8/gems/selenium-webdriver-2.27.2/lib/selenium/webdriver/chrome/bridge.rb:14:in `initialize' 
    from /var/www/myapp/shared/bundle/ruby/1.8/gems/selenium-webdriver-2.27.2/lib/selenium/webdriver/common/driver.rb:37:in `new' 
    from /var/www/myapp/shared/bundle/ruby/1.8/gems/selenium-webdriver-2.27.2/lib/selenium/webdriver/common/driver.rb:37:in `for' 
    from /var/www/myapp/shared/bundle/ruby/1.8/gems/selenium-webdriver-2.27.2/lib/selenium/webdriver.rb:67:in `for' 
    from (irb):4 

任何提示嗎?

+0

同樣的問題也發生的最新版本,最新chromedriver。 –

+0

什麼版本的Firefox?什麼版本的Chrome?什麼版本的Chrome驅動程序? – Arran

+0

顯示你的代碼plz? –

回答

3

當我將包含「backports」gem作爲其依賴項的一部分的gem包含到我的Gemfile中時,我看到了這一點。 backports gem重寫了一些Ruby 1.8的內部部分,它們重寫了UDPSocket核心類的部分內容。嘗試擺脫背膠寶石,並給它一個鏡頭。

+0

techpeace是正確的。這是問題。謝謝! –

+0

另一種解決方案是報告問題:-) 這在最新版本的'backports'中得到修復。請參閱https://github.com/marcandre/backports/issues/67 –

0

這是由於對backports寶石的干擾以及socket庫重用IO.open這一事實造成的,儘管它改變了接口。

升級backportsv2.6.7 or above應該解決這個問題。

1

ChromeDriver安裝:

下載Chromedriver 2.X 「http://chromedriver.storage.googleapis.com/index.html?path=2.8/。」解壓縮並將其保存在任何驅動器上的文件夾中。通過以下步驟設置路徑:

複製的路徑,直到chromedriver.exe 右鍵單擊計算機並選擇「屬性」 選擇「高級系統變量」 選擇「環境變量」 點擊編輯按鈕「路徑」變量'用戶變量' 追加chromedriver路徑 保存更改。

運行Selenium測試:

現在運行你的Selenium測試。它將在Chrome瀏覽器上運行。

示例代碼

需要 '硒的webdriver'

$驅動程序=硒:: WebDriver.for:鉻

$ driver.navigate.to 「https://www.google.co.in/

$ driver.manage()。window()。maximize()

$ driver.quit()

注意:您需要安裝Chrome瀏覽器試圖實例Firefox的webdriver的時候

相關問題