多个 IE 网络驱动程序:单击 link/button 打开弹出窗口时会话丢失 window

Multiple IE web-drivers : session lost when click link/button that opens a popup window


我 运行 多个 (2) IE 网络驱动程序在一起。(用于用户端和管理员端测试) 当 InternetExplorer WebDriver 单击 link/button 打开模式弹出窗口时,登录页面在新的 window 上打开(异常)。


当 ie webdriver 弹出 window 时,我可以在几分之一秒内看到浏览器应该加载的正确地址(在 URL 行),但它立即更改为登录名 url , 并要求输入用户名和密码。


我在 this link 中发现了同样的问题, 我在那里做了解决方案,但我仍然没有解决问题,我得到了一个条目 window 而不是预期的 window。 see this screenshot


我的 InternetExplorer 选项:

 private static InternetExplorerOptions ieOptions = new InternetExplorerOptions
        {
            EnsureCleanSession = true ,
            EnableNativeEvents = true ,
            RequireWindowFocus = true ,
            EnablePersistentHover = true ,
            ForceCreateProcessApi = true ,
            BrowserCommandLineArguments = "-framemerging -private"
        };

我添加了注册表项:

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main\FrameMerging\(DWORD)00000000

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main\TabProcGrowth\(DWORD)00000000

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE\iexplorer.exe\(DWORD)00000000

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE\iexplorer.exe\(DWORD)00000000


已编辑:

根据 Deepak-MSFT 的参考,我了解到该问题是由多个 IE 网络驱动程序实例引起的。

我也试图通过在代码中添加 ConfirmCleanSession = true 选项来终止 IE 驱动程序,并且还通过 运行 从命令行手动执行以下语句(在 运行测试);

taskkill / F / IM iexplore.exe / T
taskkill / F / IM IEDriverServer.exe / T


但是当我将 2 个 IE 网络驱动程序设置为一起工作时,它并没有帮助。

(当我尝试 运行 仅在一个驱动程序上进行测试时 - 效果很好!)


如果能帮助解决问题,我将不胜感激!

此问题是由于 IE 本身的问题以及驱动程序如何为浏览器创建弹出窗口 window。

解决方法是确保在启动与驱动程序的会话时没有 iexplore.exe 个进程 运行。

参考文献:

(1) session cookie lost when click made to a link that opens a window with window.open()

(2) session cookie lost when click made to a link that opens a window with window.open()

我的解决方案:

将测试用例分成两个测试:


第一次测试 -

对第一个站点(在我的例子中是管理端)使用 IE 网络驱动程序,并同时使用另一个网络驱动程序(不会导致像 Chrome 网络驱动程序这样的问题)第二个站点(在我的例子中 - 管理端)


第二次测试-

第一个站点使用上面的其他网络驱动程序,第二个站点同时使用 IE 网络驱动程序。


所以我在 IE 中对这两个站点进行了测试。