我试图写一个网页的请求规范。
这页作品在发展没有错误。
但在水豚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的测试就在这个应用程序的其他页面工作...
这是使没有意义的我。 没有人有任何建议,如何从这里到调试?
谢谢你的帮助
你看到的错误是告诉你,有某种在页面异常的最可能的水豚,WebKit的神秘方式。 我有同样的问题而回,而“无法加载URL”的事完全扔我,很难找到实际的问题。
作为几件事情要尝试,我建议:
- 请确保您已安装最新版本的水豚-的WebKit。
- 检查比实际形式的其它测试的元件,例如控制器的逻辑和所涉及的任何模型。 剥去一切,直到你什么都没有。
- 退房的讨论,在这个问题上,并按照线索从那里。 我敢肯定,这是同样的问题或相关的一个。
祝好运!
以下添加到您的水豚的配置。
require 'rack/utils'
Capybara.app = Rack::ShowExceptions.new(NameOfYourRailsApp::Application)
现在,当您得到一个错误,你会看到它在标准输出和机架将呈现页面与有关环境(饼干等)及回溯细节。
我和子站点,我可以让它工作加入以下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
文件
我有一个类似的问题,并能够通过使修复它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