由于chromedriver在执行结束时未删除名为scoped_ *的文件夹,因此最新的chromedriver.exe运行时出现磁盘空间不足问题。 400次测试占用了将近20GB的空间。我尝试了2.28和2.29版本的chromedriver。我正在使用driver.close()和driver.Quit()正确退出驱动程序。 Chrome浏览器的版本是57Chromedriver在测试完成后未删除临时文件夹中的scoped * dir
回答
我加入临时文件夹中删除该戒烟司机像后“scoped_dir”开始管理本:
public static void teardown_()
{
// quit driver
if (driver != null)
driver.Quit();
// delete all "scoped_dir" temp folders
string tempfolder = System.IO.Path.GetTempPath();
string[] tempfiles = Directory.GetDirectories(tempfolder, "scoped_dir*", SearchOption.AllDirectories);
foreach (string tempfile in tempfiles)
{
try
{
System.IO.DirectoryInfo directory = new System.IO.DirectoryInfo(tempfolder);
foreach (System.IO.DirectoryInfo subDirectory in directory.GetDirectories()) subDirectory.Delete(true);
}
catch (Exception ex)
{
writeEx("File '" + tempfile + "' could not be deleted:\r\n" +
"Exception: " + ex.Message + ".");
}
}
}
希望它能帮助!
这是一个已知的错误将被固定Chromedriver 2.30 https://bugs.chromium.org/p/chromedriver/issues/detail?id=644
这似乎是ChromeDriver和铬之间的竞争条件。 ChromeDriver创建这些临时目录供Chrome使用,最后ChromeDriver尝试删除这些目录。 ChromeDriver在进行删除之前等待主要Chrome进程终止,但一些Chrome子进程可能仍在运行并持有这些目录,导致删除失败。目前ChromeDriver不会重试删除操作。
像丹尼尔提到的删除临时文件可能是一个临时解决方案,但我会尽快删除它,一旦Chromedriver 2.30发布。
更新
Chromedriver 2.30过时了,应该可以解决这个问题。
验证这个问题仍然存在最新的驱动程序......这个人使用** WebdriverJS **执行繁重的硒作业后,并且磁盘空间不足,我得到了我。仍使用** chromedriver **'2.30.1'在'%TEMP%'中看到'scoped_dirXXXX'目录卡住了。将不得不去上面张贴的手动清理路线...只是创建5-6K驱动程序,你也会看到;-) – SliverNinja
我承认我正在从'2.30'补丁说明,说这个问题是固定的。你在哪里得到'2.30.1'?我没有看到任何提及该版本的内容。 – cdzar
[显然这是我找到的节点驱动程序的版本](https://github.com/giggio/node-chromedriver/releases) – SliverNinja
采用了最新chromedriver2.30.1
并没有解决我这个问题 - 我不停地跑并行硒作业时,在我的%TEMP%
目录存储空间不足。
最好的解决办法是控制userDataDir
通过Chrome浏览器选项和目录的处置自己,你driver.quit()
如果你的过程是同步的比@ cdzar的解决方案上面的工作,但对于并行作业,你真正需要的后来控制目录创建/处置你自己。
我使用ChromeDrive 2.34和Chrome 64版。我仍然有这个问题,我可以报告说,非常烦人的是如此快速地填满硬盘,实质上是垃圾。 – sapbucket
已被报告和修复。结帐2.30或2.31
UPD。至少为我们的网格工作。如果你仍然有问题,最好在productforums.google.com上报告任何scope_dir线程 另外,在修复之前,我们使用PS脚本清除.. * \ AppData \ Local \ Temp中的所有文件。
UPD 。检查Chrome浏览器已完成更新过程。随着此修复,我们遇到了一个问题,即使在重新启动后,浏览器仍处于“更新完成需要重新启动”状态。可能浏览器和驱动程序都需要更新才能正常工作 - 不能肯定地说。
- 1. 测试完成后删除临时文件
- 2. 如何在python中完成测试后删除测试文件?
- 3. 从临时文件流,然后删除完成后?
- 4. 如何在完成上传后删除杂项临时文件?
- 5. Junit测试后不会删除临时文件
- 6. 检查文件夹的存在并删除临时文件
- 7. 缓存和临时文件/文件夹删除android
- 8. IE何时从临时文件夹中删除文件?
- 9. 删除临时文件夹中的所有内容,删除临时文件,并创建一个新临时文件
- 10. 临时文件未被删除?
- 11. 临时文件夹中的文件是否自动删除?
- 12. MongoDB如何在操作完成后删除临时集合
- 13. 无法删除文件夹中的最后一个文件,同时删除使用php的文件夹
- 14. 创建临时文件夹,复制文件,处理它们并在处理完成时将其删除
- 15. 自动删除临时文件夹[CakePHP的]文件
- 16. 执行完成后删除自身文件夹
- 17. 试图生成一个临时的txt文件,然后删除它
- 18. 在Google Code上删除提交的测试文件夹/文件?
- 19. 删除临时文件
- 20. 删除临时文件php
- 21. 关于清理/删除Tomcat临时目录中的文件的建议Dir
- 22. 如何使用vbscript删除在%temp%文件夹中创建的临时文件
- 23. 使用c删除文件夹后删除文件夹#
- 24. 访问被拒绝尝试删除临时ASP.NET文件文件夹中的文件时
- 25. 如何生成临时Zip文件,然后在下载后自动删除它?
- 26. Spring/Hibernate测试 - 如何在完成时删除模式?
- 27. 用nAnt删除dir并排除子文件夹?
- 28. 搜索并删除临时文件/文件夹(脚本的失败)
- 29. 黄瓜场景后删除文件夹
- 30. Powershell远程DIR/findstr命令排除临时互联网文件夹
如果您收到 “无法删除非空文件夹”,使用此实施:的foreach(在tempFolders串tempFolder) { 尝试 { Directory.Delete(tempFolder,真); } 赶上(例外前){ ... } } 这 – Illidan
战略工程同步执行,但如果您使用的是平行** ** chromedriver工作,你会踩在运行'chromedriver.exe'过程并导致问题。 – SliverNinja