我尝试使用带有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浏览器的每个实例都有自己的会话。
希望有人可以帮助并给我一个明确的答案
答案 0 :(得分:1)
你是否曾尝试在线程调用之前先清理浏览器?在java中如下
DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
capabilities.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true);
谢谢你, 穆拉利