当前位置: 首页 > 面试题库 >

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

贺福
2023-03-14
问题内容

我正在尝试在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”,但没有更改。


问题答案:

如果您的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系统对话并绘制窗口。


 类似资料:
  • 我们正尝试在我们的Windows从机上运行来自Jenkins的Selenium测试,作为一个Gradle项目。 我能够从bat命令启动Selenium,测试执行开始,但它在后台打开浏览器(测试用例失败,它说它找不到可以点击的按钮)。如果我在windows VM上手动运行,它将启动Selenium,打开前台的浏览器,并成功执行测试。 当Jenkins开始Selenium测试时,有可能在前台打开浏览器

  • 我在Visual Studio 2017 Update 3预览版中有以下解决方案,它由作为NetStandard1.4的Xamarin.Forms项目和NetStandard1.4 dotnet Core Services.API项目以及NetStandard1.6 dotnet Core单元测试项目组成。 单元测试项目仅引用服务项目。csproj文件如下所示,其中添加了用于单元测试的MSTest

  • 在本节中,我们将学习如何在IE浏览器上运行Selenium测试脚本。 Internet Explorer使用Internet Explorer驱动程序服务器实现WebDriver协议。 Internet Explorer驱动程序服务器是Selenium和Internet Explorer浏览器中的测试之间的链接。 下面来看看一个测试用例,尝试在IE浏览器中自动化测试以下场景。 启动IE浏览器。 打

  • 主要内容:Gecko Driver是什么?在本节中,我们将学习如何在Firefox浏览器上运行Selenium测试脚本。在继续本节之前,先来了解一下Gecko Driver的基础知识。 Gecko Driver是什么? Gecko一词指的是由Mozilla基金会开发的Gecko浏览器引擎,它用作为Mozilla浏览器的一部分。 Gecko Driver是Selenium和Firefox浏览器中测试之间的链接。 它充当W3C WebDriv

  • 在本节中,将学习如何在Chrome浏览器上运行Selenium测试脚本。 Chrome浏览器使用名为 的可执行文件实现WebDriver协议。此可执行文件在系统上启动服务器,而该服务器又负责在Selenium中运行测试脚本。 考虑一个测试用例,在Google Chrome浏览器中自动执行以下测试方案。 启动Chrome浏览器。 最大化浏览器。 打开URL:www.yiibai.com 向下滚动浏览

  • 我有一个有很多功能的项目,我想在不同的浏览器中并行运行一个测试,使用cucumber jvm插件 在我的POM里。XML i添加了cucumber jvm和maver surefire两个插件 我创建runnerClass并添加: 现在,我无法运行测试,如何使用cucumber jvm或selenium网格并行运行浏览器中的不同功能