Selenium 【求助】使用 Jenkins 去执行一个简单的 selenium 脚本报错,说 chrome 浏览器无法启动。但奇怪的是用 root 用户去执行同样的脚本却没问题!有遇到过类似问题的吗?

刘小样 · 2023年05月24日 · 最后由 Eric Chan 回复于 2023年06月12日 · 6977 次阅读

1:chrome 和 webdriver 版本匹配
2:webdriver 的权限没问题
3:webdriver 的路径也添加到了环境变量去了。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 3 条回复 时间 点赞

这可能是由于在 Jenkins 中运行脚本时,使用的用户没有适当的权限启动 Chrome 浏览器导致的。您可以尝试按照以下步骤解决该问题:

  1. 确保 Jenkins 使用的用户有足够的权限启动 Chrome 浏览器。您可以使用 chmod 命令更改 Chrome 可执行文件的权限,例如:
sudo chmod 755 /opt/google/chrome/chrome
  1. 确保 Chrome 可执行文件的路径正确添加到了环境变量 PATH 中,在 Jenkins 中也是可访问的。
export PATH=$PATH:/opt/google/chrome
  1. 如果上述步骤没有解决问题,您可以尝试在 Jenkins 的构建配置中添加一个 "Execute Shell" 步骤,使用 export DISPLAY=:0 命令来设置显示器信息,例如:
export DISPLAY=:0
python my_selenium_script.py

这可能有助于使您的脚本能够在 Jenkins 中正确启动 Chrome 浏览器。

希望这些建议能够帮助您解决问题。如果问题仍然存在,请提供更多信息或记录错误消息以获取更多帮助。

chrome_options = webdriver.ChromeOptions()

chrome_options.add_argument('--no-sandbox')
禁用沙盒模式下启动试试

推荐直接用 ChromeDriverManger 动态匹配浏览器版本,不再使用固定驱动,然后设置--no-sandbox,--disable-gpu 和--headless 的 options 配置

刘小样 关闭了讨论 03月13日 13:03
刘小样 重新开启了讨论 03月13日 13:03
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册