0

我正在使用下面的 VB.NET 代码 op open Edge Chromium(在 IE 功能模式下)。如果没有打开现有的 Edge 窗口,它会起作用,否则,它只会在现有窗口中打开另一个选项卡并仅显示This is the initial start page for the WebDriver server。什么也没有发生(见下面的截图)

    Dim ieService = InternetExplorerDriverService.CreateDefaultService(Environment.CurrentDirectory, "IEDriverServer.exe")
    Dim ieOptions = New InternetExplorerOptions
    ieOptions.IgnoreZoomLevel = True
    ieOptions.AddAdditionalCapability("ie.edgechromium", True)
    ieOptions.AddAdditionalCapability("ie.edgepath", "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe")
    Dim driver = New InternetExplorerDriver(ieService, ieOptions, TimeSpan.FromSeconds(60))
    driver.Navigate().GoToUrl("https://example.com")

在此处输入图像描述

一分钟后,它在该行抛出异常Dim driver = New InternetExplorerDriver(ieService, ieOptions, TimeSpan.FromSeconds(60))

OpenQA.Selenium.WebDriverException:'对 URL http://localhost:52074/session 的远程 WebDriver 服务器的 HTTP 请求在 60 秒后超时。

有谁知道如何解决这个问题?(我不想先终止边缘会话然后开始,因为我希望现有的边缘窗口保持不变)

4

1 回答 1

1

在已打开的 Edge 浏览器窗口中自动执行 Edge-IE。请按照以下步骤

  1. 将您尝试在 Edge-IE 浏览器中启动的应用程序添加到 Edge 浏览器的兼容性列表中 (edge://compat)
  2. 在调用 Edge-IE 驱动程序初始化之前包括以下命令行以启动 Edge 进程

代码示例

System.Diagnostics.Process.Start(@"msedge.exe", "https://google.com/");
Thread.Sleep(1000);
var dir = "//path of your Edgedriver";
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);}
var ieService = InternetExplorerDriverService.CreateDefaultService(dir, driver);
var ieOptions = new InternetExplorerOptions { };
ieOptions.AddAdditionalCapability("ie.edgechromium", true);
ieOptions.AddAdditionalCapability("ie.edgepath", @"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe");
InternetExplorerDriver webdriver = new InternetExplorerDriver(ieService, ieOptions, TimeSpan.FromMinutes(3));
于 2020-12-18T15:00:49.110 回答