在我的一个场景中,我需要清除浏览器缓存。我尝试了下面的一个,但它没有工作。
browser.driver.manage().deleteAllCookies();
browser.executeScript('window.sessionStorage.clear();');
browser.executeScript('window.localStorage.clear();');
有人可以帮我吗?
答案 0 :(得分:7)
我这样使用它:
function LoginPage() {
this.get = function() {
browser.get('#/Login');
browser.executeScript('window.localStorage.clear();');
browser.executeScript('window.sessionStorage.clear();');
browser.driver.manage().deleteAllCookies();
}
}
module.exports = new LoginPage;
然后我在我的任何测试脚本中使用此功能,每次清除cookie,会话/本地存储。
var loginPage = require('.././LoginPage');
loginPage.get();
答案 1 :(得分:2)
首先,我建议在分叉浏览器中进行,这将简化您的调试工作
var fork = browser.forkNewDriverInstance();
fork.get('page1');
如果您仍然坚持清除所有内容,可以重新启动浏览器
browser.restart(); // Restart the browser clears everything (careful as it returns Promise)
browser.restartSync(); // Same as previous but synchronous == await browser.restart()
甚至更好地重启fork
fork = fork.restartSync();
fork.get('page2'); // 'page2' gotten by restarted fork
信息:https://github.com/angular/protractor/blob/master/lib/browser.ts#L537
P.S。不确定哪些部分你不能清楚,但作为最后的手段,我可以建议隐身模式
capabilities: {
'browserName': 'chrome',
'chromeOptions': {
'args': ['incognito']
}
},