2011-12-23 72 views
12

我正在使用水豚,capybara-webkit,水豚 - 截圖與黃瓜一起。 (Ruby 1.9.3,Rails 3.1.3)和Capybara.javascript_driver = :webkit也設置env.rb水豚 - webkit試圖打開example.com

不幸的是運行一個黃瓜規格與@javascript將永遠不會成功由於某種原因,錯誤截圖只是捕獲example.com。

我實際嘗試打開的URL是使用我的某個模型的導軌路由器結果生成的,例如,與visit products_url

那麼我怎麼能避免它最終查詢example.com?

任何輸入是非常歡迎。


只是因爲註釋搞砸了 - 這裏是我的發現是解決辦法:

Capybara.run_server = true 
Capybara.server_port = 7787 
Before '@javascript' do 
    Capybara.app_host = "http://127.0.0.1:#{Capybara.server_port}" 
end 

回答

11

嘗試使用visit products_path代替。他們不建議在README的「Gotchas」部分使用絕對URL。

+0

使用products_path有錯誤擺在首位結束加工。所以這就是我目前的配置: Capybara.run_server =真 Capybara.server_port = 7787 之前 '@javascript' 做 Capybara.app_host = 「http://127.0.0.1:#{Capybara.server_port}」 結束 另外這個:http://www.emmanueloga.com/2011/07/26/taming-a-capybara.html seesm解決水豚和rails的一些其他陷阱3.1 – pagid 2011-12-24 11:01:47

+0

似乎這些陷阱不適用於Webkit時談論絕對的URL – 2013-09-23 18:38:03

1

對我來說,有一個很多運動鞋「gotcha」(和我一起使用水豚與Rspec)。原本在一個規範我有:

visit "foos/5" 

這工作得很好用Rack::Test但是當我想切換到webkit驅動程序測試JS的相互作用,我得到的例外(無法加載網址:文件:///產品(水豚::驅動程序:: Webkit的:: WebkitInvalidResponseError))。

我需要做的就是改變我通過參觀,像這樣的路徑:

visit "/foos/5" 

更迭!

1

這是另一個潛在的問題,發佈給其他人可能有這個問題。我正在測試動作緩存,而關鍵的Rails生成看起來像「views/www.example.com/products」。即使您使用products_path作爲url,也會發生這種情況。這可能導致需要設置您的服務器名稱,以便您可以提前知道預期的緩存鍵。 無法加載網址:文件:///產品(水豚::驅動程序:: Webkit的:: WebkitInvalidResponseError) 但是,一旦我還配置app_host啓動