セレンC#のChromium Edge BrowserでIEモードを有効にする方法は?

Aug 22 2020

IEモードを有効にする必要があるEdgeのWebサイトを自動化したい。セレンでIEモードでEdgeを起動するにはどうすればよいですか?

私が現在使用している以下のコードは、非IEモードでEdgeを起動し、Webサイトを正しく表示しません。

    Dim edgeDriverService = Microsoft.Edge.SeleniumTools.EdgeDriverService.CreateChromiumService()
    Dim edgeOptions = New Microsoft.Edge.SeleniumTools.EdgeOptions()
    edgeOptions.PageLoadStrategy = PageLoadStrategy.Normal
    edgeOptions.UseChromium = True
    Dim driver As IWebDriver = New Microsoft.Edge.SeleniumTools.EdgeDriver(edgeDriverService, edgeOptions)
    driver.Navigate().GoToUrl("http://example.com")

使用してみましたedgeOptions.AddAdditionalCapability("ie.edgechromium", True)が、機能しませんでした

回答

2 YuZhou Aug 24 2020 at 07:02

Selenium C#のEdge ChromiumでIEモードを使用する方法については、この記事の「InternetExplorerモードの自動化」セクションを参照してください。

次の手順を参照できます。

  1. SeleniumサイトからIEDriverServer最新バージョンをダウンロードします。ここでは、32ビットのWindowsIEバージョン3.150.1を使用しています。
  2. これに従ってIEDriverを使用するためのいくつかの準備をしてください。
  3. Visual Studioを使用してC#コンソールプロジェクトを作成します。
  4. NugetパッケージマネージャーからSelenium.WebDriver3.141.0nugetパッケージをインストールします。
  5. 以下のコードをプロジェクトに追加し、コード内の独自のパスを変更します。
static void Main(string[] args) 
{ 
    var dir = "{FULL_PATH_TO_IEDRIVERSERVER}"; 
    var driver = "IEDriverServer.exe"; 
    if (!Directory.Exists(dir) || !File.Exists(Path.Combine(dir, driver))) 
    { 
        Console.WriteLine("Failed to find {0} in {1} folder.", dir, driver); 
        return; 
    } 

    var ieService = InternetExplorerDriverService.CreateDefaultService(dir, driver); 
    var ieOptions = new InternetExplorerOptions{}; 
    ieOptions.AddAdditionalCapability("ie.edgechromium", true); 
    ieOptions.AddAdditionalCapability("ie.edgepath", "{FULL_PATH_TO_MSEDGE.EXE}"); 

    var webdriver = new InternetExplorerDriver(ieService, ieOptions, TimeSpan.FromSeconds(30)); 
    webdriver.Url = "http://www.example.com"; 
}
  1. プロジェクトを実行してテストします。

ノート:

  1. コードを実行する前に、必ずすべてのEdgeブラウザのタブとウィンドウを閉じてください。
  2. コードではフルパスを使用します。例:ieOptions.AddAdditionalCapability("ie.edgepath", @"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe");