由於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. 如何在完成上傳後刪除雜項臨時文件?
- 6. 刪除臨時文件夾的內容
- 7. Junit測試後不會刪除臨時文件
- 8. 在C#中的臨時文件夾中刪除文件
- 9. 檢查文件夾的存在並刪除臨時文件
- 10. 單元測試完成後如何刪除圖像文件?
- 11. PHP腳本完成後刪除文件
- 12. 緩存和臨時文件/文件夾刪除android
- 13. IE何時從臨時文件夾中刪除文件?
- 14. 刪除臨時文件夾中的所有內容,刪除臨時文件,並創建一個新臨時文件
- 15. 臨時文件夾中的文件是否自動刪除?
- 16. 臨時文件未被刪除?
- 17. 刪除未完成的文件
- 18. 爲什麼臨時表在完成範圍後不能刪除?
- 19. MongoDB如何在操作完成後刪除臨時集合
- 20. 無法刪除文件夾中的最後一個文件,同時刪除使用php的文件夾
- 21. 從臨時文件夾中刪除RAR文件?
- 22. 創建臨時文件夾,複製文件,處理它們並在處理完成時將其刪除
- 23. DownloadManager在完成時刪除文件
- 24. 製作完成時刪除自己的文件夾的腳本
- 25. 自動刪除臨時文件夾[CakePHP的]文件
- 26. 執行完成後刪除自身文件夾
- 27. 試圖生成一個臨時的txt文件,然後刪除它
- 28. 在Google Code上刪除提交的測試文件夾/文件?
- 29. 刪除臨時文件php
- 30. 刪除臨時文件
如果您收到 「無法刪除非空文件夾」,使用此實施:的foreach(在tempFolders串tempFolder) { 嘗試 { Directory.Delete(tempFolder,真); } 趕上(例外前){ ... } } 這 – Illidan
戰略工程同步執行,但如果您使用的是平行** ** chromedriver工作,你會踩在運行'chromedriver.exe'過程並導致問題。 – SliverNinja