2011-12-23 10 views
12

私はcapybara、capybara-webkit、capybara-screenshotをキュウリと一緒に使用しています。 (Rubyの1.9.3、Railsの3.1.3)とCapybara.javascript_driver = :webkitもenv.rbCapybara-webkitがexample.comを開こうとします

に設定されている残念ながら@javascriptとキュウリのスペックを実行すると、何らかの理由で決して成功しないだろうし、エラーのスクリーンショットだけでexample.comをキャプチャします。

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

最初の場所でのエラーで終了します。 URLをロード ができません:ファイル:///製品(カピバラ::ドライバ:: Webkitの:: WebkitInvalidResponseError) しかし、私はまた、それが開始さapp_hostを設定したら、ワーキング。 '@javascript' を実行 Capybara.app_host = "http://127.0.0.1:#{Capybara.server_port}" 終了する前に =真 Capybara.server_port = 7787 Capybara.run_server:だから、私の現在の設定です さらに:http://www.emmanueloga.com/2011/07/26/taming-a-capybara.htmlカピバラとレールでいくつかの落とし穴を解決しようとしています。3.1 – pagid

+0

gotchasはWebkitには当てはまりません絶対URLについて話す –

1

私にとっては、かなりのスニーカー「gotcha」(そして私はRspecでCapybaraを使用していました)がありました。もともと私が持っていた仕様に:

visit "foos/5" 

これはRack::Testでうまく働いたが、私はjsの相互作用をテストするためにwebkitドライバに切り替えることを望んでいたとき、私は、URLを読み込むことができません(その例外が発生しました:ファイル:///製品(Capybara :: Driver :: Webkit :: WebkitInvalidResponseError))。私がしなければならなかった何

はそうのように、私が訪問する渡されたパスを変更しました:

visit "/foos/5" 

大成功!!

1

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

関連する問題