如何在spec_helper.rb中为Capybara Webkit设置ignore_ssl_errors选项

在我的spec_helper文件中,我有:

Capybara.javascript_driver = :webkit 

ignore_ssl_errors现在有一个我想要使用的ignore_ssl_errors选项。 如何在spec_helper中指定?

以下是使用:ignore_ssl_errors选项注册:webkit驱动程序的方法。

 Capybara.register_driver :webkit do |app| Capybara::Driver::Webkit.new(app, :ignore_ssl_errors => true) end 

在编写(capybara-webkit 1.7.1)时,配置似乎已经简化:

 Capybara::Webkit.configure do |config| config.ignore_ssl_errors end 

(资源)

不知何故,上面的register_driver示例不适用于Capybara 1.1.4。 以下示例取自browser_spec.rb

 Capybara.register_driver :webkit_ignore_ssl do |app| browser = Capybara::Webkit::Browser.new(Capybara::Webkit::Connection.new).tap do |browser| browser.ignore_ssl_errors end Capybara::Webkit::Driver.new(app, :browser => browser) end Capybara.javascript_driver = :webkit_ignore_ssl 

正如@hjblok所说,最近版本的capybara-webkit中的界面发生了变化。 您可以稍微简化解决方案:

 Capybara.register_driver :webkit_ignore_ssl do |app| Capybara::Webkit::Driver.new(app).tap {|d| d.browser.ignore_ssl_errors } end Capybara.javascript_driver = :webkit_ignore_ssl 

创建新的webkit对象时,可以使用它来忽略ssl错误

 Capybara::Driver::Webkit.new({ :ignore_ssl_errors => true})