8

我想寫一個網頁的請求規範。水豚webkit無效響應錯誤,如何調試?

本頁面在開發過程中沒有錯誤。

但在水豚的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頁面上的原因。到它是一個空的表單與一個普通的提交按鈕。我仍然遇到上述錯誤!

現在測試字面上:JS選項:

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

如果我刪除了這個測試然而沒有工作

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

的Javascript測試中做工作,這個應用程序的其他頁面...

這對我沒有任何意義。有沒有人有任何建議如何從這裏調試?

感謝所有幫助

回答

6

你看到的錯誤是告訴你,有某種在頁面異常的最可能的水豚,WebKit的神祕方式。我回到了the same problem,「無法加載URL」的事情完全讓我失望,很難找到真正的問題。

這樣幾件事情要嘗試,我建議:

  • 確保您已安裝最新版本的水豚-的WebKit。
  • 檢查除實際表單之外的測試元素,例如控制器邏輯和涉及的任何模型。剝去一切,直到你什麼都沒有。
  • 查看關於此問題的discussion,並從那裏跟蹤線索。我很確定這是一個相同的問題或相關問題。

祝你好運!

+0

謝謝...絕對正確的在我的情況與硒無關! – 2016-01-07 22:23:36

+0

問題是我在我的application_controller中強制ssl,沒有排除測試環境 – 2016-01-07 22:30:18

19

將以下內容添加到您的水豚配置中。

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

當你得到一個錯誤,現在你會看到它在標準輸出和機架將呈現頁面與有關環境(餅乾等)及回溯細節。

+1

非常感謝!它很棒! – 2012-09-05 10:58:36

+0

我一直在尋找這個看起來像* forever *的東西。我有VCR錄音錯誤,沒有出現在任何地方,所以我不知道發生了什麼事情。現在我可以看到問題了。謝謝! – mmrobins 2012-10-03 04:21:28

+2

這應該是公認的答案(我的答案只是一些建議,這一個真正解決了這個問題)。 – 2013-07-16 04:32:43

2

我與子站點,我可以讓它工作加入以下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文件

2

我也有類似的問題,並能通過爲:js啓用測試啓用page.driver.browser.ignore_ssl_errors來修復它。這裏是代碼爲我工作:

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