Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.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 Capybara/Selenium-上应用程序的NS\u错误\u格式错误\u URIhttp://localhost_Ruby_Selenium_Capybara - Fatal编程技术网

Ruby Capybara/Selenium-上应用程序的NS\u错误\u格式错误\u URIhttp://localhost

Ruby Capybara/Selenium-上应用程序的NS\u错误\u格式错误\u URIhttp://localhost,ruby,selenium,capybara,Ruby,Selenium,Capybara,我试图设置RSpec、Capybara和Selenium来测试在传统localhost:80上运行的PHP应用程序。每当我运行套件时,Selenium都会失败并抱怨URI格式错误 这是我的spec_helper.rb require 'bundler/setup' require 'rspec' require 'capybara/rspec' Capybara.server_port = 80 Capybara.app_host = 'http://localhost' Capybara.r

我试图设置RSpec、Capybara和Selenium来测试在传统localhost:80上运行的PHP应用程序。每当我运行套件时,Selenium都会失败并抱怨URI格式错误

这是我的spec_helper.rb

require 'bundler/setup'
require 'rspec'
require 'capybara/rspec'

Capybara.server_port = 80
Capybara.app_host = 'http://localhost'
Capybara.run_server = false
Capybara.default_driver = :selenium
这是我唯一的规格:

require File.dirname(__FILE__) + '/../spec_helper'

describe "visting the website", :type => :request do

  it "should display an html page" do  
      visit ( '/' )
      page.should have_selector( 'html' )
  end  

end 
但它会退出。我错过了什么

Failures:

  1) visting the website should display an html page
     Failure/Error: visit ( '/' )
     Selenium::WebDriver::Error::UnknownError:
       Component returned failure code: 0x804b000a (NS_ERROR_MALFORMED_URI) [nsIIOService.newURI]
     # ./spec/requests/sign_in_spec.rb:6:in `block (2 levels) in <top (required)>'

感谢您的帮助。

@andrykonchin说得对-切换回稳定工作状态

如果bundler未安装,您需要安装它

gem install bundler
然后,您需要在根目录中创建一个名为gemfile的文件(对于我的简单示例,我只使用capybara,不使用rspec)

创建一个基本的ruby文件,如下所示

require 'bundler/setup'
require 'capybara/dsl'

Capybara.server_port = 80
Capybara.app_host = 'http://google.com'
Capybara.run_server = false
Capybara.default_driver = :selenium

class Browser
  include Capybara::DSL
end

w = Browser.new

w.visit("/")
使用命令

bundle install
现在您将使用稳定版本的水豚


有关bundler的更多信息,请查看

请查看Capybara的稳定版本。我有1.1.2,我不能重现这个错误。在我的版本capybara应用默认值(参见url方法)中,我使用的是1.1.2,我也遇到了同样的问题。啊,在我的例子中,我们使用的是不带斜杠的
访问“logout”
。当我把斜杠放进去时,例如
visit”/logout“
,我们都很好。
require 'bundler/setup'
require 'capybara/dsl'

Capybara.server_port = 80
Capybara.app_host = 'http://google.com'
Capybara.run_server = false
Capybara.default_driver = :selenium

class Browser
  include Capybara::DSL
end

w = Browser.new

w.visit("/")
bundle install