Microsoft Edge驱动程序在运行selenium测试时无法确保干净会话。有没有我可以指定的选项来解决这个问题?
答案 0 :(得分:5)
答案 1 :(得分:0)
另一种解决方案是在专用模式下打开Edge(至少解决了我的会话和清除cookie问题):
EdgeOptions options = new EdgeOptions();
options.AddAdditionalCapability("InPrivate", true);
this.edgeDriver = new EdgeDriver(ptions);
答案 2 :(得分:0)
根据我的经验,在Edge中完成干净会话的唯一方法是随心所欲地构建它。我的意思是,您必须清除Cookie并在必要时重新加载屏幕。
示例是登录屏幕,该屏幕导航到登录页面,加载后约1-3秒到达弹出窗口。
Edge登录页面通常不注销以前的测试用户,因此如果Browser = Edge,则通常在这些测试步骤的开始时需要注销。
这是第一次在本地进行时,驱动程序看到弹出窗口,将其关闭,并创建一个cookie,以防止弹出窗口触发下一次测试。
我不知道您的测试框架,但是每当我从一页移动到另一页时,我都会使用ConfirmOnThisPage()方法。因此,一旦我知道页面已加载,就可以通过调用DeleteCookie(Cookie cookie)函数轻松地处理即将在此处进行测试的cookie,该函数包含页面确认方法中的页面刷新。我使用以下内容:
public IWebDriver DeleteCookie(Cookie cookie){
driver.Manage().Cookies.DeleteCookieNamed(cookie);
driver.Navigate().Refresh();
return driver;
}