2017-02-27 15 views
0

Capybara(Ruby)+ SitePrism + ChromeDriverで書かれたテストがあります。CapybaraとSiteprism:読み込みを無視する要素

これらのテストの中には、非常に低速のiframeがあり、Net :: ReadTimeout例外でテストが失敗するページが含まれています。

私は長い時間待つためにタイムアウトを増やすことができますが、これは大きな要因でテストの合計実行時間を増加させるでしょう。

また、私たちは実際にはiframe自体については気にしませんが、そのページの残りの要素についてのみ注意します。

キャビバーにiframeが読み込まれるまで待たないようにする方法はありますか?

もしそれができないのであれば、あらかじめ定義された時間を待つことが可能で、その時間が切れると、(実際のブラウザでエスケープボタンを押すなどの)停止ページの読み込みをシミュレートしますか?

答えて

1

セレンドライバを使用しているときのような問題の最もクリーンな解決策は、要求をブロックしてエラーまたは静的コンテンツを返すために、puffing-billy https://github.com/oesmith/puffing-billyのようなプログラム可能なプロキシを使用することです。もしあなたがPoltergeistやcapybara-webkitを使っていたら、同じことをするためにホワイト/ブラックリストのサポートを使うことができます。

+0

問題の解決策を探しているうちに、私は潜在的な修正として吹き飛ばされました。残念ながら、追加のライブラリは使用できません。あなたは私に、同じことをするためのきれいでない方法の例をいくつか教えていただけますか? – Alex

+0

@Alex独自のプロキシコードを作成し、タイムアウトを増やし、テストモードでページソースを変更して、フレームなどを読み込まないようにします。 Puffing-billyは、パフォーマンスの良いテストを書くのに役立つツールです。実稼働環境にライブラリを追加しないというポリシーを完全に理解していますが、テスト環境に便利なツールを追加できないようにするポリシーは、 –

+0

私はあなたに完全に同意しますが、残念ながらそれを変更することはできません!私は、ページロードのタイムアウトを増やして行きました。 – Alex

関連する問題