Selenium RC
との基本的な違いは何WebDriver
ですか?
5 に答える
WebDriver および Selenium RCからの引用:
Selenium-WebDriver は、自動化のための各ブラウザーのネイティブ サポートを使用して、ブラウザーへの直接呼び出しを行います。これらの直接呼び出しがどのように行われるか、およびそれらがサポートする機能は、使用しているブラウザーによって異なります。各「ブラウザ ドライバ」に関する情報は、この章で後述します。
Selenium-RC に慣れている人にとって、これは慣れ親しんだものとはかなり異なります。Selenium-RC は、サポートされている各ブラウザーで同じように機能しました。ブラウザのロード時に JavaScript 関数をブラウザに「注入」し、その JavaScript を使用してブラウザ内で AUT を駆動しました。WebDriver はこの手法を使用しません。ここでも、ブラウザの組み込みサポートを使用して、ブラウザを直接駆動します。
Selenium-WebDriver をどのように使用するかによって、Selenium Server が必要な場合と必要でない場合があります。WebDriver API のみを使用する場合は、Selenium-Server は必要ありません。ブラウザとテストがすべて同じマシンで実行され、テストで WebDriver API のみが使用される場合、Selenium-Server を実行する必要はありません。WebDriver はブラウザを直接実行します。
ただし、Selenium-WebDriver で Selenium-Server を使用する理由はいくつかあります。
- Selenium-Grid を使用して、複数のマシンまたは仮想マシン (VM) にテストを分散しています。
- 現在のマシンにない特定のブラウザー バージョンを持つリモート マシンに接続したい。
- Java バインディング (つまり、Python、C#、または Ruby) を使用しておらず、HtmlUnit ドライバーを使用したいと考えています。
Selenium RCは、Web ページがロードされるときに JavaScript 関数をブラウザーに挿入します。
Selenium WebDriverは、ブラウザーの組み込みサポートを使用してブラウザーを駆動します。
上記の回答にポイントを追加したかったのですが、
Selenium RC は Java スクリプト コードをブラウザに挿入するため、ブラウザはほぼ同じように動作します。
ただし、WebDriver の場合、呼び出しは特定のブラウザのネイティブ サポートを使用して直接行われ、ブラウザはユーザー インタラクションの場合と同様に動作します。
ここでは、Web ドライバーの機能について説明します。これらは RC の欠点です。
- プログラムを実行するためにサーバーを起動する必要はありません
- Web ドライバーはデフォルトでウィンドウまたはブラウザーを最大化します
- コマンド履歴ウィンドウを非表示にします
- Web ドライバーは、デフォルトでページ読み込みの同期を維持します。ページの更新の場合は、thread.sleep (); を使用して維持する必要があります。
- 「WebDriverBackedSelenium」の助けを借りて、単一のクラスの下で RC スクリプトと Web ドライバー スクリプトを開発できます。
- 高度な Web ドライバーの概念を使用して、アプリケーションから情報を取得できます。
- Web Driver は、アーキテクチャが単純であるため、Selenium RC よりも高速です。
- Web Driver はブラウザーと直接通信しますが、Selenium RC はそのために RC サーバーの助けを必要とします。
- Web Driver の API は、Selenium RC よりも簡潔です。
- Web Driver は Html Unit をサポートできますが、Selenium RC はサポートできません。