【问题标题】:Selenium+Jenkins+Chromedriver = WebDriverException: Message: unknown error: Chrome failed to start: exited abnormallySelenium+Jenkins+Chromedriver = WebDriverException:消息:未知错误:Chrome 启动失败:异常退出
【发布时间】:2017-06-17 08:54:01
【问题描述】:

我在 Jenkins 中运行 Selenium 测试时遇到问题。 执行的结果总是:

WebDriverException:消息:未知错误:Chrome 无法启动: 异常退出

我的测试是用 Robot Framework 编写的,并且使用的是 Chromium webdriver。 我在命令中设置了所需的路径,如下所示:

export PATH=$PATH:/usr/lib/chromium-browser; export PATH=$PATH:/usr/lib/chromium-browser/chromedriver; . /home/michal/robot_env/bin/activate; robot -L TRACE /home/michal/project_robot/tests

当我在终端中手动运行此命令时,它工作正常(Chromium 自动启动并继续测试)。 所以问题应该出在詹金斯身上。我已经安装了 Xvfb 插件,但它没有帮助。 另外,在 /etc/init.d/jenkins 我放了以下几行:

/usr/bin/X :0 vt7 -ac

导出显示=:0

xhost +

再一次 - 没有任何改变。我还应该设置或检查什么?

【问题讨论】:

  • Jenkins 是否在与您的终端会话不同的用户下运行?你检查过这两种情况下的所有环境变量是否都相同吗?
  • 它是否涉及屏幕处于活动状态并在屏幕上显示 UI 或者甚至可以静默运行?
  • @A.Kootstra Jenkins 在不同的用户下运行,但该用户与终端具有相同的环境变量。
  • @Waman 是的,我想了解测试中当前发生的情况(Chromium 窗口需要对普通用户可见)。
  • 因为从 Jenkins 触发更像是一个控制台触发器,而 selenium 是需要 UI 的东西。我建议您尝试在被测机器(詹金斯奴隶)中安排一个任务,该任务将运行硒测试,而不是直接从詹金斯触发。我的意思是说“詹金斯 - >安排一个任务在下一分钟运行从站 --> 任务将运行 selenium 测试"。因此,当 Selenium 测试运行时,它是在从属设备上触发的,而不是控制台触发器,因此您会看到 UI!希望我能迷惑你:)

标签: selenium jenkins selenium-webdriver selenium-chromedriver robotframework


【解决方案1】:

我以同样的方式陷入困境。 问题是jenkins有自己的用户,叫jenkins,jenkins用户无法打开浏览器。

如果您尝试制作“su jenkins”,然后制作“chromium-browser”,则会出现显示错误。

那是因为你得到了这个问题。问题不是webdriver,问题是用户。

我删除了 jenkins 创建的 jenkins 用户,并在安装 jenkins 之前创建了一个名为 jenkins 的普通用户。

然后我安装了詹金斯。

现在 jenkins 用户可以运行测试(因为它可以打开浏览器)但 jenkins 本身将不再加载。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-03
    • 2015-08-14
    • 2018-02-13
    • 2018-07-17
    相关资源
    最近更新 更多