2016-09-26 54 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"