Selenium Gridを使用して特定のバージョンのIEでノードを登録しようとしたときに問題が発生しました。私のセットアップ:C#バインディングとSelenium Grid - IEのバージョン指定時に機能が見つからない
- セレン3.0.1
- 私のページオブジェクト/フレームワークと私のNUnit 3.5のテスト
- 一つVMデータベースをホストServer 2008を実行しているし、私と1つのクラスライブラリを定義する1つのクラスライブラリセレングリッドハブは、 "javaの-jar C:\セレン\セレンサーバスタンドアロン-3.0.1.jar -roleハブ-maxSession 20" で始まっ
- 一つのVMが私のwebdriverをノードとIE9でWindows 7を実行している
私のノードwiを起動します。目(読みやすくするために私が追加した改行、それはbatファイルに1行です):
java -Dwebdriver.ie.driver=C:\Selenium\IEDriverServer.exe -Dwebdriver.chrome.driver=C:\Selenium\chromedriver.exe -jar C:\Selenium\selenium-server-standalone-3.0.1.jar -role webdriver -hub http://10.10.1.20:4444/grid/register -port 5566 -maxSession 20
-browser "browserName=internet explorer,version=9,maxInstances=1,platform=ANY,seleniumProtocol=WebDriver"
-browser "browserName=chrome,maxInstances=5"
-browser "browserName=firefox,maxInstances=5"
RemoteWebDriverを呼び出すために私のコードは次のとおりです。
caps = new DesiredCapabilities();
caps.SetCapability("browserName", "internet explorer");
caps.SetCapability("version", "9");
WebDriver = new RemoteWebDriver(new System.Uri("http://10.10.1.20:4444/wd/hub"), caps);
私はこのコードを実行すると、コードが作成するときに新しいRemoteWebDriverハブリターン:
INFO - Got a request to create a new session: Capabilities [{browserName=internet explorer, version=9}]
Visual Studioは、次のエラーが返さ示しています
System.InvalidOperationException : Error forwarding the new session cannot find : Capabilities [{browserName=internet explorer, version=9}] TearDown : System.NullReferenceException : Object reference not set to an instance of an object.
私はノードと私のコードを "9"ではなく "9.0"を使用し、 "Internet Explorer"ではなく "iexplore"に設定しようとしましたが、成功。 GoogleとSeleniumのドキュメントを2時間かけて掘り下げたが、さまざまなブラウザの "バージョン"機能に期待されているフォーマットを列挙している人はいないようだから、正しい値。ノードの起動バッチからバージョンフラグを削除し、C#コードでsetCapabilityを呼び出すと、ブラウザが正常に起動します。しかし、私はテストのための複数のIEの変形とグリッドを持っているし、私が望むIEのバージョンを指定できるようにする必要があります。誰でも正しい方法でIEの特定のバージョンのノードを起動し、そのノードをハブに登録し、RemoteWebDriverで呼び出すことができますか?