我想在 Selenium 的 Edge-ie 模式下处理多个 windows
I want to handle multiple windows in Edge-ie mode from Selenium
我是 运行 Selenium 上的 Edge-ie 模式
使用版本如下
硒:3.141 (java)
IE驱动程序:3.150.1
至此,我开启Edge-ie模式,能够操作第一屏
但是,当我打开另一个屏幕时,我无法获取 window 句柄,
无法操作
评论说这是因为不支持IE驱动
(Browser.cpp 行号 116 到 121)
if (this-> is_edge_chromium_) {
LOG (TRACE) << "Entering Browser :: NewWindow3 but early exiting due to edge mode";
// In Edge Chromium, we do not yet support attaching to new windows.
// Quit early and ignore that event.
return;
}
我想我需要修改 ieDriver 以在 Edge-ie 模式下与另一个屏幕交互
而现在我觉得有必要在以下几个地方打开Edge-ie模式而不是ie
(BrowserFactory.cpp 行号 793 到 805)
if (is_protected_mode) {
hr = :: CoCreateInstance (CLSID_InternetExplorer,
NULL,
context,
IID_IWebBrowser2,
reinterpret_cast <void **> (& browser));
} else {
hr = :: CoCreateInstance (CLSID_InternetExplorerMedium,
NULL,
context,
IID_IWebBrowser2,
reinterpret_cast <void **> (& browser));
}
如何在上述位置启动Edge-ie模式?
有没有其他方法可以修复 IE 驱动程序?
(由 Google 翻译)
Edge IE模式应该由IE驱动来驱动。您提到的情况与GitHub上的this issue有关。官方还没有修复,所以Selenium在Edge IE模式下无法处理多个windows。建议您将此问题反馈给相关产品团队。
我是 运行 Selenium 上的 Edge-ie 模式
使用版本如下
硒:3.141 (java)
IE驱动程序:3.150.1
至此,我开启Edge-ie模式,能够操作第一屏 但是,当我打开另一个屏幕时,我无法获取 window 句柄, 无法操作
评论说这是因为不支持IE驱动 (Browser.cpp 行号 116 到 121)
if (this-> is_edge_chromium_) {
LOG (TRACE) << "Entering Browser :: NewWindow3 but early exiting due to edge mode";
// In Edge Chromium, we do not yet support attaching to new windows.
// Quit early and ignore that event.
return;
}
我想我需要修改 ieDriver 以在 Edge-ie 模式下与另一个屏幕交互 而现在我觉得有必要在以下几个地方打开Edge-ie模式而不是ie (BrowserFactory.cpp 行号 793 到 805)
if (is_protected_mode) {
hr = :: CoCreateInstance (CLSID_InternetExplorer,
NULL,
context,
IID_IWebBrowser2,
reinterpret_cast <void **> (& browser));
} else {
hr = :: CoCreateInstance (CLSID_InternetExplorerMedium,
NULL,
context,
IID_IWebBrowser2,
reinterpret_cast <void **> (& browser));
}
如何在上述位置启动Edge-ie模式? 有没有其他方法可以修复 IE 驱动程序? (由 Google 翻译)
Edge IE模式应该由IE驱动来驱动。您提到的情况与GitHub上的this issue有关。官方还没有修复,所以Selenium在Edge IE模式下无法处理多个windows。建议您将此问题反馈给相关产品团队。