Microsoft Edge清理会话

时间:2016-09-21 14:12:33

标签: selenium selenium-webdriver microsoft-edge

Microsoft Edge驱动程序在运行selenium测试时无法确保干净会话。有没有我可以指定的选项来解决这个问题?

3 个答案:

答案 0 :(得分:5)

我自己今天遇到这个问题,所以我让它工作的唯一方法最终很简单。您必须在边缘设置中选中“在关闭浏览器时始终清除此项”(并选择要清除的内容)。

使用该设置,您将在每个新的驱动程序初始化上拥有干净的会话:) selenium edge clean session

答案 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;
}