多个 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
- 我的IE版本是11.
- 我的Selenium.WebDriver是3.141.0.0
- 我的ie webdriver是IEDriverServer_x64_3.141.5
我的 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 中对这两个站点进行了测试。
我 运行 多个 (2) IE 网络驱动程序在一起。(用于用户端和管理员端测试)
当 InternetExplorer WebDriver 单击 link/button 打开模式弹出窗口时,登录页面在新的 window 上打开(异常)。
当 ie webdriver 弹出 window 时,我可以在几分之一秒内看到浏览器应该加载的正确地址(在 URL 行),但它立即更改为登录名 url , 并要求输入用户名和密码。
我在 this link 中发现了同样的问题,
我在那里做了解决方案,但我仍然没有解决问题,我得到了一个条目 window 而不是预期的 window。
see this screenshot
- 我的IE版本是11.
- 我的Selenium.WebDriver是3.141.0.0
- 我的ie webdriver是IEDriverServer_x64_3.141.5
我的 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 中对这两个站点进行了测试。