我同时运行多个(2)IE Web驱动程序。(用于用户端和管理员端测试)
当InternetExplorer WebDriver单击打开模式弹出窗口的链接/按钮时,登录页面将在新窗口中打开(异常)。
当ie webdriver弹出窗口时,我可以在几分之一秒内看到浏览器应加载的正确地址(在URL行中),但立即将其更改为登录URL,并要求输入用户名和密码。
我在this link中发现了同样的问题,
我在那里找到了解决方案,但仍然没有解决问题,并且得到了输入窗口而不是预期的窗口。
see this screenshot
我的InternetExplorerOptions:
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 Web驱动程序实例引起的。
我还尝试通过在代码中添加ConfirmCleanSession = true
选项来杀死IE驱动程序,也尝试通过在命令行中运行以下语句(在运行测试之前)来手动终止该驱动程序;
taskkill / F / IM iexplore.exe / T
taskkill / F / IM IEDriverServer.exe / T
但是一旦我将2个IE网络驱动程序设置为可以协同工作,那将无济于事。
(当我尝试仅在一个驱动程序上运行测试时-很好!)
希望能帮助您解决问题!
答案 0 :(得分:1)
此问题归因于IE本身的怪异以及驱动程序如何为浏览器创建弹出窗口。
解决方法是确保在启动与驱动程序的会话时没有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()
答案 1 :(得分:0)
我的解决方案:
将测试用例分为两个测试:
第一次测试-
在第一个站点上使用IE Web驱动程序(在我的情况下-管理员端),在第二个站点上并行使用另一个Web驱动程序(不会像Chrome Web驱动程序那样引起问题) -管理员端)
还有第二次测试-
将上述其他Web驱动程序用于第一个站点,将IE Web驱动程序并行用于第二个站点。
因此,我介绍了这两个站点在IE中进行的测试。