14

カピバラ、カピバラ-webkit、カピバラ-スクリーンショットをキュウリと一緒に使用しています。(Ruby 1.9.3、Rails 3.1.3) であり、Capybara.javascript_driver = :webkitenv.rb も設定されています。

@javascript残念ながら、何らかの理由でcucumber spec を実行しても成功せず、エラーのスクリーンショットは example.com をキャプチャするだけです。

私が実際に開こうとしている URL は、私のモデルの 1 つのレール ルーターの結果で生成されます。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
4

3 に答える 3

13

visit products_path代わりに使用してみてください。READMEの「Gotchas」セクションで絶対URLを使用することはお勧めしません。

于 2011-12-24T10:23:35.127 に答える
1

私にとっては、多くのスニーカーの「落とし穴」がありました (そして、私は Rspec でカピバラを使用していました)。もともと私が持っていた仕様で:

visit "foos/5"

これは正常に機能しましRack::Testたが、ドライバーに切り替えて js の相互作用をテストしたいときに、webkitその例外が発生しました (URL を読み込めません: file:///products (Capybara::Driver::Webkit::WebkitInvalidResponseError))。

私がしなければならなかったのは、私が訪問するために渡したパスを次のように変更することでした:

visit "/foos/5"

成功!!

于 2012-02-28T22:33:16.273 に答える
1

これは、この問題を抱えている可能性のある他の人のために投稿された、別の潜在的な落とし穴です。私はアクション キャッシングをテストしていましたが、Rails が生成するキーは "views/www.example.com/products" のように見えます。これは、products_path を URL として使用した場合でも発生します。これにより、サーバー名を設定する必要が生じる可能性があります。これにより、予期されるキャッシュ キーを事前に知ることができます。

于 2012-09-17T18:45:55.310 に答える