如何在多线程测试期间使用Internet Explorer浏览器设置Selenium Webdriver不共享会话?

时间:2016-02-18 09:53:13

标签: selenium-webdriver automation webdriver internet-explorer-11

我尝试使用带有IEDriverServer.exe的selenium webdriver C#测试Internet Explorer 11浏览器多线程。

我现在可以使用自己的测试脚本启动多线程IE浏览器并与之交互,但似乎已启动的所有IE浏览器共享相同的会话并登录。

例如,我正在测试gmail网站。

第一个浏览器线程启动gmail主页>登录gmail网站

第二个浏览器线程启动gmail主页。 Gmail已登录。

如何设置Internet Explorer 11以拥有自己的会话?如何以同一站点上的不同用户身份登录?以免我的多线程测试不会互相干扰。

继承我在IE浏览器上的设置

var myOptions = new InternetExplorerOptions()
                        {
                            BrowserAttachTimeout = TimeSpan.FromSeconds(60),
                            RequireWindowFocus = false,
                            IntroduceInstabilityByIgnoringProtectedModeSettings = true,
                            IgnoreZoomLevel = true,
                            EnsureCleanSession = true,
                            PageLoadStrategy = InternetExplorerPageLoadStrategy.Eager,
                            ValidateCookieDocumentType = true,
                            InitialBrowserUrl = "about:Tabs",
                            BrowserCommandLineArguments = "-noframemerging"

                        };
                        myOptions.AddAdditionalCapability("INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS", true);
                        myOptions.BrowserCommandLineArguments = "-private";

                        originalWebdriver = new InternetExplorerDriver(@"C:\Download" + BrowserCtr + @"\IEDriverServer", myOptions);

我已经在mozilla firefox上测试了,似乎firefox浏览器的每个实例都有自己的会话。

希望有人可以帮助并给我一个明确的答案

1 个答案:

答案 0 :(得分:1)

你是否曾尝试在线程调用之前先清理浏览器?在java中如下

 DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
 capabilities.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true);

谢谢你, 穆拉利