web-dev-qa-db-ja.com

Selenium Webdriverを使用すると、InternetExplorerDriverを使用して次のエラーが発生します-「InternetExplorerの起動中に予期しないエラーが発生しました...」

C#でInternetExplorerDriverをインスタンス化しようとしていますが、そのたびに次のエラーメッセージが表示されます。

System.InvalidOperationException:InternetExplorerの起動中に予期しないエラーが発生しました。保護モードは、すべてのゾーンで同じ値(有効または無効)に設定する必要があります。 (NoSuchDriver)

これをどのように分類するかはわかりませんが、問題のエラーをトリガーするコード行は次のとおりです。

IWebDriver driver = new InternetExplorerDriver();

InternetExplorerDriverのドキュメントでは、オーバーロードされたコンストラクターでICapabilitiesオブジェクトを渡すことができると提案されていますが、プロパティはBrowserNameIsJavaScriptEnabledPlatformおよびVersion。これらのどれも、問題を解決できることを示唆しているようには見えません。

これを整理するために、実装内で行う必要があることはありますか?または、IE9自体の設定を変更する必要がありますか?

21
Yorkie_Henno

Internet Explorerは4つのゾーンを定義し、それぞれが異なるセキュリティレベルを持ち、保護モードを有効または無効にする機能を備えています。エラーメッセージは、SeleniumのInternetExplorerDriverの制限により、allゾーンで保護モードを無効または有効にする必要があることを通知しようとしています。 。

詳細については、 Seleniumの課題追跡システムの欠陥レポート および Internet Explorerのセキュリティオプションのスクリーンショット を参照してください。

17
Chris Shouts

これで問題が解決するはずです。

InternetExplorerOptions options = new InternetExplorerOptions();
options.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
IWebDriver driver = new InternetExplorerDriver(options);
8
Aleh Douhi

Alehの回答で問題は解決しましたが、IEDriverServerの場所のファイルパスも指定する必要があることがわかりました。他の誰かが同様の問題に遭遇した場合に備えて投稿するだけです。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using OpenQA.Selenium;
using OpenQA.Selenium.IE;
using OpenQA.Selenium.Support.UI;

namespace SeleniumTest
{
    class Program
    {
        static void Main(string[] args)
        {
            InternetExplorerOptions options = new InternetExplorerOptions();
            options.IntroduceInstabilityByIgnoringProtectedModeSettings = true;

            IWebDriver driver = new InternetExplorerDriver("C:\\Selenium", options);

            driver.Navigate().GoToUrl("http://www.stackoverflow.com");
        }
    }
}
5
Jake Halsey

私は次のことがうまくいったことがわかりました(上記の答えはどれもうまくいきませんでした)

DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
desiredCapabilities.SetCapability(InternetExplorerDriver.IntroduceInstabilityByIgnoringProtectedModeSettings, true);
driver = new InternetExplorerDriver(desiredCapabilities);

動作することがわかりましたが、テストを実行しようとすると「(予期しないアラートオープン)」が表示されました。何よりも、IE開発者ツールバーを無効にする必要があることがわかりました。 。

2
boolean

リンクを参照してください:- https://intensetesting.wordpress.com/2014/09/16/error-80070012-unexpected-error-launching-spoon-based-internet-Explorer/

OSのインストール中にインストールされたネイティブIEブラウザーをアップグレードまたは劣化させると、スプーンブラウザーを開くことができなくなります。デフォルトにする必要があるたびにIE =ブラウザなら動作します。OSのインストール中にデフォルトのIEバージョンはIE8で、何らかの目的でIE9にアップグレードしたとします。この場合、アプリケーション内のアプリケーションをナビゲートすることはできません。スプーンブラウザ(ブラウザのみが開きます)を実行すると、「InternetExplorerの起動中に予期しないエラーが発生しましたIELaunchURLエラーが80070012を返しました」などのエラーメッセージが表示されます。

2
Amit

構築されたサーバーでも同様の問題が発生し、保護モードを変更する方法がありませんでした。システム管理者によって無効にされました。管理者アカウントでログインしても、プロテクトモードを変更できませんでした。しかし、Seleniumは問題なく実行できました。

1
Rasoul