2

私のチームは、Selenium を使用して IE ブラウザーのテストを開始しました。主な問題点の 1 つは、セレンがページの読み込みを完全に完了したタイミングを判断するのが難しい (読み取り: 一見不可能な) 時間があることです。私たちは、多くの JavaScript、かなりの量の AJAX、およびサードパーティ製のコントロールをいくつか使用しています。したがって、そのすべてのアクティビティがいつ完了し、ページをテストする準備ができているかを知ることは困難です。このコードの多くはレガシーであるため、単純にページを書き直したりリファクタリングしたりすることはできません。これは非常に大規模なエンタープライズ アプリです。

私の主な質問は次のとおりです。この点に関して、Watin の方が優れていますか? ページが完全にロードされたことを検出するための組み込みメカニズムはありますか?

残念ながら、要素が表示されるのを待つことはできません。これは、セレンで一般的に受け入れられている方法です。多くの場合、動的要素のスクロールされたリストを扱っており、javacript が終了するまで待機する必要があります。これは、待機しなければならない要素の数が (テストに対して) 不確定であるためです。

別のブラウザーに切り替えることは不可能です。IE で動作するソリューションを見つける必要があります。私は時間をかけて調査する価値があるかどうか、またはある制限を別の制限と交換するだけの価値があるかどうかを判断しようとしています.

4

2 に答える 2

3

私はかなり長い間WatiNを使用していましたが、最近Seleniumに切り替えました.WatiNよりもあなたが説明した状況を実際にうまく処理していると感じているからです(Selenium WebDriverのドライバーで作成できる「待機」があります)。しかし、それは本当に意見の問題になると思います。WatiN は IE でのみ適切に動作するため、これに限定され、他のブラウザーに分岐することはできません。このため、WatiN は IE 用に作成されており、IE でよりうまくいく可能性があることを示唆しています。

補足として、ブラウザの読み込みが完了したかどうかを確認するために Windows 呼び出しを使用してみましたか? これは可能だと思いますか?Selenium への XPath の追加はかなり便利ですが、IE では速度が遅くなります。

編集: または、JavaScript を呼び出して、ページの JavaScript がいつ終了したかを確認できませんか?

EDIT EDIT:また、この投稿には多くの比較と意見が含まれています。

于 2012-04-26T03:12:01.493 に答える
1

私の WatiN での作業に関しては、Selenium よりも簡単です。私たちにもたくさんのjavascript、ajaxがあります-それに対する私の解決策は使用しています

WebBrowser.Current.Div(ids.waitForBagGridToLoadIdentifier).WaitUntil("style", "display: none;"); 

特定の JavaScript が作業を終了するのを待ちます。おそらく、Selenium にも同様のアプローチがあります。

于 2012-04-26T07:01:29.067 に答える