如何通过CMD命令删除IE与Edge的local_storage?(Codeception测试场景)
解决IE和Edge本地存储(localStorage)清除问题的CMD命令及自动化方案
我来帮你搞定这个测试前清除localStorage的问题——你之前用的RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 255确实搞不定localStorage,这个命令只针对浏览器历史、缓存、Cookie这类传统数据,而localStorage属于HTML5 Web存储,得用专门的方式处理。
下面分浏览器给你对应的CMD命令,还有结合Codeception自动化执行的方案:
Edge(Chromium内核)的清除方法
Edge现在基于Chromium,它的localStorage存在用户数据目录里,你可以通过以下CMD命令彻底清除:
- 先关闭所有Edge进程(避免文件被占用):
taskkill /F /IM msedge.exe - 删除localStorage的存储目录:
rmdir /S /Q "%LOCALAPPDATA%\Microsoft\Edge\User Data\Default\Local Storage"
提示:如果你的Edge用了多个用户配置文件,把路径里的Default换成对应的用户文件夹名称即可。
更适合自动化测试的方式是:在Codeception的Selenium配置里,给Edge浏览器指定临时用户数据目录,这样每次启动Edge都是全新的环境,根本不用手动清理。比如在acceptance.suite.yml里添加:
modules: enabled: - WebDriver: browser: edge capabilities: ms:edgeOptions: args: ["--user-data-dir=C:\\Temp\\EdgeTestProfile"]
每次测试后这个临时目录可以自动删除,或者下次启动直接覆盖。
Internet Explorer的清除方法
IE的localStorage存在DOMStorage目录下,用以下CMD命令清除:
- 先关闭所有IE进程:
taskkill /F /IM iexplore.exe - 删除DOMStorage下的所有文件:
del /S /Q "%USERPROFILE%\AppData\Local\Microsoft\Internet Explorer\DOMStorage\*"
结合Codeception自动化执行
手动跑CMD太麻烦,你可以把这些命令集成到Codeception的测试流程里,比如在项目根目录的_bootstrap.php里添加以下代码,每次启动测试前自动执行清理:
// 清理Edge的localStorage exec('taskkill /F /IM msedge.exe 2>NUL'); exec('rmdir /S /Q "%LOCALAPPDATA%\Microsoft\Edge\User Data\Default\Local Storage" 2>NUL'); // 清理IE的localStorage exec('taskkill /F /IM iexplore.exe 2>NUL'); exec('del /S /Q "%USERPROFILE%\AppData\Local\Microsoft\Internet Explorer\DOMStorage\*" 2>NUL');
2>NUL是为了避免进程已经关闭时输出错误信息,让控制台更干净。
内容的提问来源于stack exchange,提问作者QATesting
相关产品推荐
相关产品推荐

