2017-02-07 12 views
1

diffブラウザでテストスクリプトを実行するために、特定のブラウザドライバをseleniumhq.comからダウンロードしてスクリプトを実行します。ブラウザ(IE、Chrome)ドライバをダウンロードする必要がある理由

それが必要として、このコードは正常に動作します:

System.setProperty("webdriver.ie.driver", "C:\\Users\\Public\\CIO\\resources\\iedriver.exe"); 

WebDriver driver = new InternetExplorerDriver(); 
driver.get("www.mywebsite.com"); 

私はすでに私のマシンで「IE実行ファイルが-'iexplore.exe持って、使用webdriverをセレンIEを起動することができませんか?

なぜIEDriverseleniumhq.comからダウンロードされますか?

C:\Program Files\Internet Explorer\iexplore.exe 

セットアップしてもプログラムを実行しようとしました。ブラウザは、それは、それぞれのウェブサイトに移動し、最終的に例外をスローしたことができませんでしたが--port=1234/としてアドレスを立ち上げました:スレッド「メイン」org.openqa.selenium.remote.UnreachableBrowserExceptionで

例外: は、新しいセッションを開始できませんでした。考えられる原因は、リモートサーバーの無効なアドレスまたは ブラウザの起動に失敗したことです。 ビルド情報:バージョン: '2.28.0'、リビジョン: '18309'、時間: '2012年12月11日夜08時21分18秒'

答えて

5

"ブラウザドライバが" webdriverをのwire protocol実装するサーバですそれらのコマンドを特定のブラウザの独自のネイティブAPIに変換する方法を知っています。

WebDriver siteは説明する:

セレン-webdriverを自動化のための各 ブラウザのネイティブサポートを使用してブラウザへの直接呼び出しを行います。これらのダイレクトコールはどのようにして が作成され、サポートする機能はブラウザによって異なります。 を使用しています。例えば

、次のようにChromeDriver wikiがそれを記述する:

ChromeDriverは、3つの別々の部品で構成されています。 ブラウザ(クローム)、 Seleniumプロジェクト(「ドライバ」)によって提供される言語バインディング、および「chrome」と 「ドライバ」の間のブリッジとして機能する Chromiumプロジェクトからダウンロードされた実行ファイルがあります"

基本的には、ブラウザがwebdriverをワイヤプロトコル「を語る」する方法を知らない、とwebdriverをどのように「トーク」ブラウザのAPIを知りません。実際、各ブラウザには独自のネイティブAPIがあります。 「ブラウザドライバ」は、ワイヤプロトコルを解釈し、そのブラウザのAPIを呼び出す方法を知っています。

+1

いい説明。また、このリンクを参照することもできます。https://www.quora.com/How-does-the-Selenium-WebDriver-work – shank087

+0

@SkinnyJは説明のためにアップを付けましたが、webdriver-browserのための中間層がなければならないコミュニケーションはなぜ同じものがfirefoxに当てはまらないのですか? – SelThroughJava

+0

@SelThroughJava - seleniumパッケージには、firefoxブラウザを駆動するwebdriver.xpiが付属しています。 org-> openqa-> selenium-> firefoxフォルダの下にあるはずです。 firefox 48以上については、下記のリンクhttp:// stackoverflowを参照してください。com/questions/38916650/what-of-the-benefits-of-using-marionette-firefoxdriver-of-the-old-selen/38917100#38917100 – shank087

関連する問題