【发布时间】: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