问题描述
我正在使用下面的VB.NET代码打开Edge Chromium(在IE功能模式下)。如果没有现有的Edge窗口打开,它将起作用;否则,它将在现有窗口中打开另一个选项卡,并显示这是WebDriver服务器的初始起始页面。,并且没有任何反应(请参阅屏幕快照)下面)
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,TimeSpan.FromSeconds(60))
OpenQA.Selenium.WebDriverException:'对远程服务器的HTTP请求 URL http:// localhost:52074 / session的WebDriver服务器超时 60秒后。”
有人知道如何解决此问题吗? (我不想先终止边缘会话然后再开始,因为我希望现有的边缘窗口保持不变)
解决方法
在已经打开的Edge浏览器窗口中自动化Edge-IE。请按照以下步骤
- 将要在Edge-IE浏览器中尝试启动的应用程序包含到Edge浏览器的兼容性列表(edge:// compat)
- 在调用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));