如何在selenium C#中的Chromium Edge浏览器中启用IE模式?

如何在selenium C#中的Chromium Edge浏览器中启用IE模式?,selenium,selenium-webdriver,microsoft-edge,chromium,selenium-edgedriver,Selenium,Selenium Webdriver,Microsoft Edge,Chromium,Selenium Edgedriver,我想在边缘自动化一个网站,这是需要IE模式启用。如何在selenium中以IE模式启动Edge 下面的代码,我目前使用的启动边缘在非IE模式,这将不会显示网站正确 Dim edgeDriverService = Microsoft.Edge.SeleniumTools.EdgeDriverService.CreateChromiumService() Dim edgeOptions = New Microsoft.Edge.SeleniumTools.EdgeOptions()

我想在边缘自动化一个网站,这是需要IE模式启用。如何在selenium中以IE模式启动Edge

下面的代码,我目前使用的启动边缘在非IE模式,这将不会显示网站正确

    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)
但它不起作用

您可以参考有关如何在Selenium C中的Edge Chromium中使用ie模式的部分

您可以参考以下步骤:

  • 从下载最新版本的IEDriverServer。这里我使用32位的WindowsIE版本3.150.1
  • 根据需要做好使用IEDriver的准备
  • 使用Visual Studio创建一个C#控制台项目
  • 从nuget软件包管理器安装Selenium.WebDriver 3.141.0nuget软件包
  • 将下面的代码添加到项目中,并在代码中修改指向您自己的路径:
  • 运行要测试的项目:
  • 注意事项:

  • 确保在运行代码之前关闭所有边缘浏览器选项卡和窗口
  • 在代码中使用完整路径。例如:
    ieOptions.AddAdditionalCapability(“ie.edgepath”,@“C:\ProgramFiles(x86)\Microsoft\Edge\Application\msedge.exe”)

  • 嗨,谢谢你,它成功了。将其标记为解决方案,因为它回答了我的问题。然而,我面临另一个问题,我不得不使边缘无头以及。我现在该怎么做??早些时候,我将其命名为edgeOptions.AddArguments(“--headless”)。因为现在我使用ieoptions,,我不能做无头?:-(我注意到,如果已打开边缘窗口,则此代码将失败。是否有办法解决此问题?如果已打开边缘窗口,则会打开另一个选项卡并显示“这是WebDriver服务器的初始起始页”然后什么都没有发生是的,所以我在注释中指出,在运行代码之前,您需要关闭所有边缘浏览器选项卡和窗口。我们只能通过这样做来避免这种情况。
    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"; 
    }