由于最新的chromedriver.exe出现磁盘空间不足,所以chromedriver在执行结束时不会删除名为scoped_*
的文件夹。它占用了将近40 GB的空间来进行1000次测试。
我尝试了2.28和2.29版本的色度驱动器。我与driver.close()
和driver.Quit()
一起正确地退出了驱动程序。有什么帮助吗?
发布于 2017-05-03 16:08:41
我也看到过同样的事情,我们运行自动化的盒子已经没有空间了。我们发现铬是罪魁祸首。我没有解决根本问题的答案,但是我已经创建了一个批处理脚本,我计划每天在windows机器上运行这个脚本来清理所有临时文件夹。要创建一个批处理文件,只需打开记事本,将以下命令复制并粘贴到文本区域,并在此时使用扩展名_____.bat保存它,您应该能够通过设置一个计划的任务,以便尽可能频繁地运行该批处理文件。
@echo off
cd %temp%
for /d %%D in (*) do rd /s /q "%%D"
del /f /q *
发布于 2019-01-13 10:17:51
你看得对。在启动Chrome时,每次创建scoped_dir*
时都运行基于Selenium/ChromeDriver的测试,如下所示:
[1547372435.413][INFO]: Launching chrome: "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-background-networking --disable-client-side-phishing-detection --disable-default-apps --disable-extensions --disable-extensions-except="C:\Users\ATECHM~1\AppData\Local\Temp\scoped_dir4616_4705\internal" --disable-hang-monitor --disable-infobars --disable-popup-blocking --disable-prompt-on-repost --disable-sync --disable-web-resources --enable-automation --enable-logging --force-fieldtrials=SiteIsolationExtensions/Control --ignore-certificate-errors --log-level=0 --metrics-recording-only --no-first-run --password-store=basic --remote-debugging-port=0 --start-maximized --test-type=webdriver --use-mock-keychain --user-data-dir="C:\Users\ATECHM~1\AppData\Local\Temp\scoped_dir4616_1359" data:,
此scoped_dir*
需要传递默认/强制/配置参数才能启动Chrome。例如:
"chrome": {
"chromedriverVersion": "2.45.615291 (ec3682e3c9061c10f26ea9e5cdcf3c53f3f74387)",
"userDataDir": "C:\\Users\\ATECHM~1\\AppData\\Local\\Temp\\scoped_dir4616_1359"
}
但是在成功调用driver.quit()
时,即清除退出,ChromeDriver应该删除这个临时文件夹。
根据ChromeDriver不删除配置文件&作用域_目录*测试退出后的文件夹的说法,这个问题在ChromeDriver v2.28和浏览器:Chrome57.x中是可以复制的,@johnchen@chromium.org在其中提到:
这似乎是ChromeDriver和Chrome之间的竞争条件。ChromeDriver创建这些临时目录供Chrome使用,最后ChromeDriver尝试删除这些目录。ChromeDriver在执行删除之前等待主Chrome进程终止,但是一些Chrome子进程可能仍在运行并保留这些目录,从而导致删除失败。目前,ChromeDriver不重试删除。添加一些重试可能是最简单的修复方法。
此提交铬驱动程序在需要时重试删除温度在清理这些目录时添加了重试逻辑,以免ChromeDriver在退出时无法删除临时目录,从而浪费了磁盘空间。这个补丁是ChromeDriver 2.3的一部分。
如果您仍然看到scoped_dir*
(在并行测试的情况下),您可以从返回功能存储userDataDir并删除该文件夹。这将清除该特定实例的scoped_dir
文件夹,并在运行并行测试时提供帮助。
https://sqa.stackexchange.com/questions/26675
复制相似问题