Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby Selenium Webdriver无法创建chrome Webdriver实例_Ruby_Selenium - Fatal编程技术网

Ruby Selenium Webdriver无法创建chrome Webdriver实例

Ruby Selenium Webdriver无法创建chrome Webdriver实例,ruby,selenium,Ruby,Selenium,我们已经在chrome和firefox上使用Selenium成功地对Rails 2进行了集成测试。然而,我们最近升级到了Rails 3,在创建chrome webdriver实例时遇到了问题 当我们尝试创建时,会得到以下堆栈: irb(main):002:0> profile = Selenium::WebDriver::Chrome::Profile.new translate])#<Selenium::WebDriver::Chrome::Profile:0x64f2fd0 @e

我们已经在chrome和firefox上使用Selenium成功地对Rails 2进行了集成测试。然而,我们最近升级到了Rails 3,在创建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
irb(main):002:0>profile=Selenium::WebDriver::Chrome::profile.new
翻译])#
irb(主):003:0>profile['download.prompt_for_download']=false
假的
irb(main):004:0>driver=Selenium::WebDriver.for(:chrome,:profile=>profile,:switches=>%w[--忽略证书错误--禁用弹出窗口阻止--禁用转换])
ArgumentError:参数数目错误(0表示1)
来自/var/www/myapp/shared/bundle/ruby/1.8/gems/selenium-webdriver-2.27.2/lib/selenium/webdriver/common/platform.rb:157:in“open”
摘自/var/www/myapp/shared/bundle/ruby/1.8/gems/selenium-webdriver-2.27.2/lib/selenium/webdriver/common/platform.rb:157:in“ip”
摘自/var/www/myapp/shared/bundle/ruby/1.8/gems/selenium-webdriver-2.27.2/lib/selenium/webdriver/common/platform.rb:170:in“interfaces”
来自/var/www/myapp/shared/bundle/ruby/1.8/gems/selenium-webdriver-2.27.2/lib/selenium/webdriver/common/port_prober.rb:23:in‘free?’
摘自/var/www/myapp/shared/bundle/ruby/1.8/gems/selenium-webdriver-2.27.2/lib/selenium/webdriver/common/port_prober.rb:5:在“上述”中
来自/var/www/myapp/shared/bundle/ruby/1.8/gems/selenium-webdriver-2.27.2/lib/selenium/webdriver/chrome/service.rb:33:“默认服务”中
来自/var/www/myapp/shared/bundle/ruby/1.8/gems/selenium-webdriver-2.27.2/lib/selenium/webdriver/chrome/bridge.rb:14:in“initialize”
摘自/var/www/myapp/shared/bundle/ruby/1.8/gems/selenium-webdriver-2.27.2/lib/selenium/webdriver/common/driver.rb:37:in“new”
来自/var/www/myapp/shared/bundle/ruby/1.8/gems/selenium-webdriver-2.27.2/lib/selenium/webdriver/common/driver.rb:37:in“for”
来自/var/www/myapp/shared/bundle/ruby/1.8/gems/selenium-webdriver-2.27.2/lib/selenium/webdriver.rb:67:in“for”
来自(irb):4

有什么提示吗?

当我在gem文件中包含一个包含“Backport”gem作为其依赖项的一部分时,我看到了这一点。backports gem重写了一些Ruby 1.8内部构件,这些构件重写了
UDPSocket
core类的部分内容。尝试摆脱backports gem并试一试。

这是由于对
backports
gem的干扰以及
套接字
库重用
IO的事实造成的。尽管会更改接口,但请打开


后台端口升级到应该可以解决此问题。

ChromeDriver安装:

从“下载Chromedriver 2.x”,将其解压缩并保存在任何驱动器上的文件夹中。通过以下步骤设置路径:

将路径复制到chromedriver.exe 右键单击计算机并选择“属性” 选择“高级系统变量” 选择“环境变量” 单击“用户变量”的“路径”变量的编辑按钮 附加chromedriver路径 保存更改

运行硒测试:

现在运行selenium测试。它将在chrome浏览器上运行

示例代码

需要“selenium webdriver”

$driver=Selenium::WebDriver.for:chrome

$driver.navigate.to“”

$driver.manage().window().maximize()最大化

$driver.quit()


注意:您需要为最新版本的Chrome浏览器安装最新的chromedriver

尝试实例化firefox webdriver时也会出现同样的问题。firefox的哪个版本?什么版本的Chrome?Chrome驱动程序的哪个版本?@Abhi_Mishra,Driver=Selenium::WebDriver.for(:Chrome,:profile=>profile,:switches=>%w[--忽略证书错误--禁用弹出窗口阻止--禁用翻译])代码显示在粘贴到问题中的irb会话中。另一种解决方案包括报告问题:-)这在最新版本的
backport
中已修复。看见