2016-09-26 42 views
6

我試圖用Ruby on Rails運行Selenium的示例scirpt。我必須使用代理來運行它。這裏是我的代碼:無法連接到Geckodriver

require 'rubygems' 
require 'bundler/setup' 

# require your gems as usual 
require "selenium-webdriver" 

Selenium::WebDriver::Firefox.path = "/home/marc/Documents/firefox/firefox" 
profile = Selenium::WebDriver::Firefox::Profile.new 
proxy = Selenium::WebDriver::Proxy.new(:http => nil) 
profile.proxy = proxy 
driver = Selenium::WebDriver.for :firefox, :profile => profile 
driver.navigate.to "http://google.com" 

element = driver.find_element(:name, 'q') 
element.send_keys "Hello WebDriver!" 
element.submit 

puts driver.title 

driver.quit 

我得到了以下錯誤:

/home/marc/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/selenium-webdriver-3.0.0.beta3.1/lib/selenium/webdriver/common/service.rb:115:in `connect_until_stable': unable to connect to Mozilla geckodriver 127.0.0.1:4445 (Selenium::WebDriver::Error::WebDriverError) 

有人可以幫我...?我在幾小時後試着找不到問題......真的不知道該怎麼辦。

環境:

的Ubuntu LTS 16.04, 火狐45.0, rbenv 2.3.1

其他問題:有人知道了硒+ Ruby on Rails的一些例子嗎?我無法找到真正的好東西...文檔是真窮:(

回答

9

selenium-webdriver-3.0.0.beta3.1這是隻適用於Firefox 48及更高版本(且尚未正常工作)。 預置至selenium-webdriver版本2.53.4,然後再試一次。

+0

謝謝,我昨天得到了解決方案。但這正是我的問題,所以你100%正確。 – Twinfriends

+0

謝謝。我試圖降級Firefox和安裝壁虎驅動程序,它沒有工作。我剛剛添加了「gem'selenium-webdriver','2.53.4'」並運行了bundle更新selenium-webdriver,並且它再次運行。 – appleLover

+1

問題是新版本的硒(> 3.0)與舊版本的Firefox(<48)不兼容。 –

2

作爲除了黑人與硒版本降級的解決方案:

  • 在終端改變目錄路徑爲安裝寶石目錄
  • 運行gem uninstall selenium-webdriver
  • 運行gem install selenium-webdriver -v 2.53.4
0
  • 紅寶石:紅寶石2.3.3p222
  • 硒的webdriver:硒的webdriver(3.7.0)
  • 火狐:V57

Selenium::WebDriver::Firefox.driver_path = "‪C:\\Users\\Desktop\\geckodriver.exe" 
capabilities = Selenium::WebDriver::Remote::Capabilities.firefox(accept_insecure_certs: true) 
driver = Selenium::WebDriver.for :firefox, desired_capabilities: capabilities 
driver.navigate.to "https://google.com"