首页 > 解决方案 > 如何在 selenium C# 的 Chromium Edge 浏览器中启用 IE 模式?

问题描述

我想在 Edge 中自动化一个需要启用 IE 模式的网站。如何在 selenium 中以 IE 模式启动 Edge?

下面我当前使用的代码在非 IE 模式下启动 Edge,这将无法正确显示网站。

    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)但没有用

标签: seleniumselenium-webdrivermicrosoft-edgechromiumselenium-edgedriver

解决方案


关于如何在 Selenium C# 中的 Edge Chromium 中使用 IE 模式,您可以参考本文中的自动化 Internet Explorer 模式部分。

您可以参考以下步骤:

  1. Selenium 站点下载最新版本的IEDriverServer。这里我使用 32 位 Windows IE 版本 3.150.1。
  2. 据此做一些准备使用IEDriver 。
  3. 使用 Visual Studio 创建 C# 控制台项目。
  4. 从 Nuget 包管理器安装Selenium.WebDriver 3.141.0 nuget 包。
  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");

推荐阅读