我正在尝试在我的 OSX 笔记本电脑上运行 Jenkins 的 RF/Selenium2Library 测试。 Jenkins 默认安装为用户“jenkins”。我安装了 Jenkins 的 RF 插件并设置了环境变量,一切正常,除了浏览器永远不会打开(无论是 firefox 还是 chrome),并且测试因 selenium 超时而失败,说这样那样的元素从未出现。
我的预感是我需要在某处设置一个显示变量才能使浏览器正确打开。
这是 Jenkins 针对该项目的“执行 shell”命令:
源/Users/Shared/Jenkins/.bash_profile;
pybot -b /Users/Shared/Jenkins/robot_output/dbug.log -i SMOKE01 -d /Users/Shared/Jenkins/robot_output/ /Users/KWHome/Dev/PycharmProjects/BHI/Tests;
出口0
同样,Selenium 似乎认为浏览器在某处打开并等待初始元素出现,但它们永远不会这样做,因为没有浏览器实际上打开。我是詹金斯的新手,非常感谢您提供有关了解这里发生的情况的建议。
ADDED:
以下是 Jenkins 构建后创建的 jenkins 用户 dbug 日志的一些输出:
20140719 21:28:23.914 - INFO - Opening browser 'firefox' to base url 'https://staging.azzi-mvconnects.com/'
20140719 21:28:27.273 - DEBUG - Opened browser with session id a2414ad7-f523-7441-8a54-dd5c68f4049b
20140719 21:28:27.274 - INFO - +----- END KW: Selenium2Library.Open Browser (3360)
20140719 21:28:27.274 - INFO - +----- START KW: Selenium2Library.Maximize Browser Window [ ]
20140719 21:28:27.415 - INFO - +----- END KW: Selenium2Library.Maximize Browser Window (141)
20140719 21:28:27.416 - INFO - +----- START KW: Selenium2Library.Wait Until Element Is Visible [ ${home_login_button} ]
20140719 21:28:32.500 - INFO - +------ START KW: Selenium2Library.Capture Page Screenshot [ ]
20140719 21:28:32.909 - INFO - </td></tr><tr><td colspan="3"><a href="selenium-screenshot-1.png"><img src="selenium-screenshot-1.png" width="800px"></a>
20140719 21:28:32.909 - INFO - +------ END KW: Selenium2Library.Capture Page Screenshot (409)
20140719 21:28:32.910 - FAIL - Element 'ctl00_LoginLink' was not visible in 5 seconds
浏览器似乎已“打开”,但它从未出现在桌面上。我尝试在运行 pybot 的命令之前添加 'DISPLAY=:0' 但没有任何变化。
如果您的 Jenkins 作业需要运行显示 GUI 的内容,则无法在 Jenkins 中运行作为后台服务运行的构建(无论是在 Windows、Mac 还是 Linux 上)。
(在 Linux 中,您可以使用 Xvnc 或类似的假 X 服务器,甚至还有 Jenkins 插件可以使其变得更简单。)
您的选择是:
- 使用 GUI 会话登录并在终端窗口中输入以下命令运行 Jenkins
java -jar /path/to/jenkins.war
。当 Jenkins 在 GUI 上下文中启动时,Jenkins 启动的任何进程都能够与 GUI 系统通信并绘制窗口。
- 或者,您可以在 Jenkins 中设置 JNLP 从站,然后使用 GUI 会话登录,打开 Web 浏览器来访问 Jenkins 并启动连接到 Jenkins 主站的 JNLP 从站,现在从站正在 GUI 上下文中运行,您可以配置要在从属设备上执行的作业。在从机中执行的进程将能够与 GUI 系统对话并绘制窗口。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)