2013-05-23 13 views
5

Javaでは、Internet ExplorerドライバのIEバージョンをDesired Capabilitiesを渡すことで設定できます。それはC#で動作しません。私はInternetExplorerDriver()コンストラクタにDesiredCapabilitiesを渡すことはできませんC#でSelenium c#:特定のバージョン(IE8など)でInternet Explorerドライバを起動する方法

DesiredCapabilities ieCapabilities = null; 
ieCapabilities = DesiredCapabilities.InternetExplorer(); 
ieCapabilities.SetCapability(CapabilityType.Version, "8"); 

IWebDriver driver = new InternetExplorerDriver(ieCapabilities); 

私はそれはのようなものを見て期待します。

+0

少なくとも1つの文を_sounding_のように追加してください。 – stefan

+0

質問はタイトルにあります。注意深く読んでください。 – Different

+1

_title_には問題の説明が必要です。質問の_body_に質問が含まれている必要があります。それはそれと同じくらい簡単です。 – stefan

答えて

9

DesiredCapabilitiesは、特定のドライバのさまざまな種類のOptionsにラップされています。

ありますが、IEを起動するための追加オプションを指定することができますInternetExplorerOptionsクラス、であり、この上のいずれかの方法は、あなたが要求にあなたが望むすべての機能を追加することができますAddAdditionalCapabilityです。つまり、オプションには、の機能が含まれ、ドライバに引き渡されます。

あなたの特定の質問については、不可能ではありません。これは、SeleniumまたはIEDriverServerの制限でもなく、IE自体です。 メジャーハッキングなしでは、一度に1つのマシンに複数のバージョンのIEを持つことはできません。逆に考えてみましょう.IEをアップグレードすると、以前のバージョンはアンインストールされます。

現在インストールしているIEを起動します。それ以外はの純粋なが間違っています。もう一度Windowsマシンに複数のバージョンのIEを同時にインストールすることはできません。

これを回避する唯一の方法は、バージョンごとに別々のマシンまたはVMを用意すること、またはSauceLabsのような自動クラウドテストフレームワークに投資することです。

編集

また、あなたはIE8の互換モードを使用することを望んだかIEDriverを使用するときにそれがうまくいくのか疑問に思っ言及しています。

これはまったく別のものです。

IEの互換性エンジンは、ではなく、です。これは、そのブラウザエンジンの真の表現です。したがってIE7互換モードでIE9を実行していると考える必要があります。したがって、IE7は完全に期待しています。マイクロソフトがこれを言うにしても、それはアドホックテストに使用されることになります。 。したがって、たとえあなたがでもになることがあっても、それは少しでも信頼できるテストではありません。

問題は依然としてセレンの問題ではありません。 IEDriverは、IEがインストールされているものを呼び出す予定です.Seleniumが接続できるセッションをセットアップするには、Internet Explorerが必要です。

すべて IEDriverで使用できる互換性オプションはIE自体には影響しません。セッションの作成とセレンの相互作用に影響します。

この時点で、セレンは空気中で手を放りますが、できることはほとんどありません。

これを念頭において、SeleniumはInternet Explorerに特定のブラウザモードを使用させることはできません。これを行うためのAPIはまったくないため、やりにくいです。

ここでの回避策は、まずIEを強制的に互換性ビューで表示することです。あなたの選択肢は非常に限られている:

Force IE9 into browser compatibility view

+0

こんにちはアラン、あなたの答えをありがとう。 私はoptionsクラスを見て、以下を試しました: options.AddAdditionalCapability(CapabilityType.Version、 "8"); 特定のIEバージョン(たとえばIE8)でセレンテストを実行している、希望の結果が得られません あなたが言及したIEの制限について。 Internet Explorerを起動し、F12キーを押すと、さまざまなブラウザモード(IE7、IE8、互換性ビュー..)から選択できます。私は "ブラウザモード"を設定することによってインターネットエクスプローラドライバを実行することが可能でなければならないと期待しています。 – Different

+0

私の編集を参照してください。短いバージョンですが、それでもあまりできることはありません。IEを強制的に特定のモードで表示する必要があります.Seleniumは制御できません。セレンの制限。私は再び言及します。あなたは、その時点でマシンにインストールされているIEだけを使用することができます。 – Arran

+0

ありがとうございました。あなたの言ってる事がわかります。 – Different

0

異なるバージョンをインスタンス化するには、必要なバージョン番号にcapability.setVersionを使用して、バージョンを設定することができます。ノードを起動しながら、同時に、あなたはコマンドラインで次のパラメータを追加する必要があります。

browser "browserName=internet explorer,maxInstances=5,platform=WINDOWS, version=8" 

が同じノードで複数のバージョンをサポートするために、あなたは「-browser」を複数回使用することができます。

関連する問題