-->

水豚WebKit的响应无效错误,如何调试?(Capybara webkit invalid resp

2019-06-26 16:21发布

我试图写一个网页的请求规范。

这页作品在发展没有错误。

但在水豚WebKit的运行我想提交表单后出现此错误:

 Failure/Error: Unable to find matching line from backtrace
 Capybara::Driver::Webkit::WebkitInvalidResponseError:
   Unable to load URL: https://127.0.0.1:33416/sign_in

在努力找出原因我已经开始剥离出来的标记和JavaScript的网页上。 到它是一个空的形式与普通的提交按钮的位置。 我仍然得到上面的错误!

现在测试字面上:

it "should be able create a new foo", :js, :focus do
  visit new_foo_path
  find('#submit').click
end

JS选项:如果我删除了这个测试但是不工作:

it "should be able create a new foo", :focus do
  visit new_foo_path
  find('#submit').click
end

JavaScript的测试就在这个应用程序的其他页面工作...

这是使没有意义的我。 没有人有任何建议,如何从这里到调试?

谢谢你的帮助

Answer 1:

你看到的错误是告诉你,有某种在页面异常的最可能的水豚,WebKit的神秘方式。 我有同样的问题而回,而“无法加载URL”的事完全扔我,很难找到实际的问题。

作为几件事情要尝试,我建议:

  • 请确保您已安装最新版本的水豚-的WebKit。
  • 检查比实际形式的其它测试的元件,例如控制器的逻辑和所涉及的任何模型。 剥去一切,直到你什么都没有。
  • 退房的讨论,在这个问题上,并按照线索从那里。 我敢肯定,这是同样的问题或相关的一个。

祝好运!



Answer 2:

以下添加到您的水豚的配置。

require 'rack/utils'
Capybara.app = Rack::ShowExceptions.new(NameOfYourRailsApp::Application)

现在,当您得到一个错误,你会看到它在标准输出和机架将呈现页面与有关环境(饼干等)及回溯细节。



Answer 3:

我和子站点,我可以让它工作加入以下spec_helper.rb

Capybara.configure do |config|
  config.javascript_driver = :webkit
  config.server_port = 3000
  config.app_host = "http://subdomain.local.host:3000"
end

之前加入显然127.0.0.1 subdomain.local.host我的/etc/hosts文件



Answer 4:

我有一个类似的问题,并能够通过使修复它page.driver.browser.ignore_ssl_errors:js启用测试。 下面是为我工作的代码:

config.before(:each) do
    if Capybara.current_driver == :webkit
      # Need to manually specify ignoring of SSL errors
      page.driver.browser.ignore_ssl_errors
    end
end


文章来源: Capybara webkit invalid response error, how to debug?