问题如标题所述使用selenium操作chrome109以上版本会在C:\Program Files (x86)目录下创建scoped_dir*文件夹,每次启动都会创建一个,文件夹内容为浏览器的用户配置,大小在20M左右,多次操作后会导致磁盘占满问题。 经过查询问题是chromedriver导致,官方仍未修复此问题。 可通过以下地址查看问题描述与根因: https://github.com/SeleniumHQ/selenium/issues/11555 https://bugs.chromium.org/p/chromedriver/issues/detail?id=4322

问题根因:

生肉翻译下来大致解释就是chromium 团队认为当使用高权限运行浏览器时,临时文件仍然会生成在temp目录下,这会被任意的用户修改,他们没办法忍受这一点。所以就把临时文件和文件夹都创建在了只有管理员可以访问的地址,那就是C:\Program Files。

解决办法:

当前并没有什么很好的解决方法,只能是在seleniun代码中显示的指定 user-data-dir参数 或者 使用driver.quit()来正确的关闭驱动。 使用前者将user-data-dir重新指定到temp目录,这样可以保证每次运行完后temp目录会自动删除。后者则是驱动正常退出后也会删除temp目录,即scoped_dir*目录。但是使用driver.quit()方法的话得保证每次chromedriver都是正常退出的,若是异常退出的话临时文件就会一直留着了。 user-data-dir参数示例:

chrome_options = Options()

options.add_argument(r'user-data-dir=C:\Users\Your_User_Name\AppData\Local\Google\Chrome\User Data')

另外这个回答也提到了使用user-data-dir参数仍然会创建一个空文件夹的问题,这里的话笔者尝试使用禁用插件功能后,空文件夹就不会生成了。

chrome_options = Options()

chrome_options.add_argument("--disable-extensions")

精彩链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: