使用Protractor运行测试时自动禁用Chrome浏览器缓存
解决Protractor运行测试时禁用Chrome缓存的问题
方案一:通过Chrome DevTools Protocol(CDP)动态禁用缓存
直接在Protractor的onPrepare钩子中发送CDP命令,这种方式比单纯依赖启动参数更可靠:
onPrepare: async function () { const browserName = browser.capabilities.get('browserName'); if (browserName === 'chrome') { await browser.driver.sendChromiumCommand('Network.setCacheDisabled', { cacheDisabled: true }); } }
方案二:完善Chrome启动参数配置
如果偏好使用启动参数,需确保参数格式正确,并补充更多兜底配置:
capabilities: { browserName: 'chrome', chromeOptions: { args: [ '--disable-cache', '--disable-application-cache', '--disable-offline-load-stale-cache', '--disk-cache-size=0', '--media-cache-size=0', '--incognito' // 无痕模式默认禁用持久化缓存 ] } }
验证步骤
- 测试前完全关闭所有Chrome进程,避免残留进程复用旧缓存
- 可在Chrome开发者工具的Network面板中检查请求标识,确认无
from disk cache或from memory cache的加载记录
内容的提问来源于stack exchange,提问作者Mohan Annasamy
相关产品推荐
相关产品推荐

