对于自动化项目,我必须使用带edge的selenium。不幸的是,该网站是在IE内核。所以我开始在IE模式的边缘,一切都很好。但是,当控制器需要用windowHandle检测一个新窗口时,即使等待,它也不会检测任何新的窗口。能让开关在IE模式下工作吗?
PS:由于我使用IE驱动程序,我可以通过更改几行启动IE。当我运行IE时,窗口更改就完成了。当我使用选项运行Edge时,我不会检测到任何东西。因此,所有的工作与IE浏览器良好,问题只来自边缘和IE模式。
我正在使用具有如下功能的IE驱动程序:
var ieService = InternetExplorerDriverService.CreateDefaultService(dir, driver);
var ieOptions = new InternetExplorerOptions{};
ieOptions.AddAdditionalCapability("ie.edgechromium", true);
ieOptions.AddAdditionalCapability("ie.edgepath", "{path to msedge.exe}");
var webdriver = new InternetExplorerDriver(ieService, ieOptions, TimeSpan.FromSeconds(30));
driver.FindElement(By.Id("button")).Click();
Thread.Sleep(2000);
string popupHandle = string.Empty;
ReadOnlyCollection<string> windowHandles = driver.WindowHandles;
foreach (string handle in windowHandles)
{
if (handle != existingWindowHandle)
{
popupHandle = handle;
break;
}
}
driver.SwitchTo().Window(popupHandle);
发布于 2022-02-02 13:27:44
现在这个问题解决了。您可以下载最新的Selenium 4.0版本,并在IE模式下开始为Edge编写脚本。您还可以在下面的链接IE模式下的MS Edge中跟踪github中的问题票
https://stackoverflow.com/questions/67584897
复制相似问题