最近发现了一个好用的模拟浏览器插件:DrisseionPage。测试编写好代码之后想放到centos上去跑一跑,发现却如下报错:

![连接不上浏览器](https://img-blog.csdnimg.cn/d8926595366747899d2446863c47dd88.png#pic_center)

那么查看官方文档后,按照文档进行了操作依然不行
文档建议的解决办法

这里我填入的浏览器可执行文件路径是:/usr/bin/google-chrome(我认为应该是这个路径),但是执行后依然提示找不到浏览器。最后通过在Ubuntu上慢慢测试,发现浏览器的可执行文件路径应该是/opt/google/chrome/google-chrome。因此,修改代码为:

from DrissionPage.easy_set import set_paths

set_paths(browser_path=r'/opt/google/chrome/google-chrome')

运行之后再次重试控制浏览器,却发现报错:

ERROR:zygote_host_impl_linux.cc(90)] Running as root without --no-sandbox is not supported. See https://crbug.com/638180.

翻译过来就是以root权限运行不支持no sandbox,因此修改一下文件就可以了:

vim /opt/google/chrome/google-chrome

找到exec -a "$0" "$HERE/chrome" "$@" 这一行(应该在最后一行),在末尾追加–user-data-dir --no-sandbox 参数即可
修改之后重新运行,可以发现DrissionPage已经可以连接控制浏览器了

参考资料:
解决Docker容器内安装chrome浏览器无法启动bug
DrissionPage入门指南

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐