一尘不染

从Jenkins运行Robot Framework测试时,浏览器永远不会打开

selenium

我正在尝试在OSX笔记本电脑上运行Jenkins的RF / Selenium2Library测试。默认情况下,Jenkins作为用户“
jenkins”安装。我已经安装了用于Jenkins的RF插件并设置了环境变量,除了浏览器从未打开(firefox或chrome)都无法正常运行,并且一切正常之外,测试都因selenium超时而失败,并指出此类元素从未出现。

我的直觉是,我需要在某个地方设置显示变量,以使浏览器正确打开。

这是我从詹金斯(Jenkins)的“ execute shell”命令执行的此项目:

来源/Users/Shared/Jenkins/.bash_profile; pybot -b
/用户/共享/詹金斯/robot_output/dbug.log -i SMOKE01 -d /用户/共享/詹金斯/ robot_output / /用户/
KWHome / Dev / PycharmProjects / BHI / Tests; 出口0

再次,Selenium似乎认为浏览器已在某个位置打开,并等待初始元素出现,但它们从未这样做,因为实际上没有打开浏览器。我是Jenkins的新手,非常感谢您对了解这里发生的事情的任何建议。

添加:

这是从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”,但没有更改。


阅读 335

收藏
2020-06-26

共1个答案

一尘不染

如果您的Jenkins作业需要运行显示GUI的内容,则无法在Jenkins中运行作为后台服务运行的构建(无论是在Windows,Mac还是Linux上)。

(在Linux中,您可以使用Xvnc或类似的假X服务器玩花样,甚至还有Jenkins插件使之更简单。)

您可以选择以下任一方法:

  • 使用GUI会话登录,然后在终端窗口中输入来运行Jenkins java -jar /path/to/jenkins.war。在GUI上下文中启动Jenkins时,Jenkins启动的任何进程都可以与GUI系统对话并绘制窗口。
  • 或者,您可以在Jenkins中设置JNLP从站,然后使用GUI会话登录,打开Web浏览器以访问您的Jenkins,并启动连接到Jenkins主站的JNLP从站,现在从站正在GUI上下文中运行,您可以配置作业以在从属服务器上执行。在从站中执行的进程将能够与GUI系统对话并绘制窗口。
2020-06-26