【发布时间】:2017-11-02 04:24:02
【问题描述】:
我已经使用 Robotframework 创建了 Web 测试。 一旦我尝试使用 Jenkins 运行测试,由于 chromedriver 在启动时崩溃,测试会失败。这是我收到的消息:
WebDriverException:消息:未知错误:Chrome 无法启动:崩溃 (驱动信息:chromedriver=2.29.461585 (0be2cd95f834e9ee7c46bcc7cf405b483f5ae83b),platform=Mac OS X 10.12.4 x86_64)
尝试手动运行成功,一切正常。
这是我正在运行的精简代码:
*** Test Cases ***
Test Sanity Setup
[Tags] Sanity
${chrome_options} = Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys, selenium.webdriver
${prefs} Create Dictionary credentials_enable_service=${false}
Call Method ${chrome_options} add_experimental_option prefs ${prefs}
Call Method ${chrome_options} add_argument --disable-infobars
Call Method ${chrome_options} add_argument --kiosk
Create WebDriver Chrome chrome_options=${chrome_options}
Go to URL
Go To ${URL}
Finalize Tests
close all browsers
*** Keywords ***
Provided precondition
Setup chromedriver
Set Environment Variable webdriver.chrome.driver ./driver/chromedriver.exe
【问题讨论】:
-
也许问题是我必须使用无头浏览器,因为我在远程机器上运行 Jenkins 仍在研究这种方式......
-
为了帮助我们,我们需要进一步了解您的设置。 Jenkins 是作为 PoC 环境在您自己的桌面上运行,还是在具有不同操作系统(Linux、Windows 等)的服务器上运行?在 Jenkins 中,您是在运行从节点的测试,还是在服务器本身上运行?您能否提供 Jenkins 用于启动 Robot Framework 测试的确切命令,当然还有您用于手动运行测试的命令?
-
感谢您的回复,Jenkins 在 Mac 上运行,作业在从节点上执行。在这两种情况下,我都运行相同的命令:'robot sanity.robot'
-
从节点是windows机器,手动执行这个脚本在从节点上运行find?否则:
Set Environment Variable webdriver.chrome.driver ./driver/chromedriver.exe在 Mac 环境中没有意义。 -
从机是Mac,请忽略错误添加的“.exe”
标签: jenkins selenium-chromedriver robotframework