selenium + chrome109以上版本会自动在C:\Program Files (x86)目录下创建scoped_dir*文件夹

问题如标题所述使用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")
  • 8
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值