1,Windows上写的RobotFramework的WebUI脚本,能够正常运行。导出脚本上传到Linux,在Linux系统下robot命令执行报错,如下图:
[root@c-gksk-node03-dev yangxu_case]# robot cc ============================================================================== Cc ============================================================================== Cc.Cc1 ============================================================================== cc11 | FAIL | WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally. (unknown error: DevToolsActivePort file doesn't exist) (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
2,原因:需要对浏览器设置header,设置为无头模式。浏览器的无头(headless)模式。
3,解决办法:
3.1,如下图,在windows里,使用第8到12步可以通过谷歌浏览直接打开百度,然后输入和查询,最后关闭浏览器,完成一个自动化测试。 但是脚本导出到Linux执行就会报错。
3.2,这个时候对浏览器进行设置,如图,另外添加第1到7步,以及使用之前第9到12步(也就是把第8步注释掉)。直接在windows上运行,可以通过。导出脚本到Linux执行也能通过了。
对应代码
*** Settings ***
Library Selenium2Library
*** Test Cases ***
cc11
${chrome_options} Evaluate selenium.webdriver.ChromeOptions() modules=selenium,selenium.webdriver
Call Method ${chrome_options} add_argument --headless
Call Method ${chrome_options} add_argument --no-sandbox // “–no - sandbox”参数是让Chrome在root权限下跑
Call Method ${chrome_options} add_argument disable-gpu
Create Webdriver Chrome chrome_options=${chrome_options}
Maximize Browser Window
go to https://www.baidu.com/
#open Browser https://www.baidu.com/ Chrome
Input Text id=kw xx
click Button id=su
sleep 2
close Browser
4,参数介绍
5,linux下执行
[root@c-gksk-node03-dev yangxu_case]# robot -d /opt/robotframework/yangxu_case/jieguo /opt/robotframework/yangxu_case/cc
其中-d 代表把log.html、report.html、output.xml这三个文件保存到/opt/robotframework/yangxu_case/jieguo目录;
其它的命令参数可以通过robot --help查询尝试
[root@c-gksk-node03-dev yangxu_case]# ll total 452 drwxr-xr-x 2 root root 55 Jul 20 15:10 api drwxr-xr-x 2 root root 43 Jul 21 11:03 cc drwxr-xr-x 2 root root 59 Jul 21 13:52 jieguo [root@c-gksk-node03-dev yangxu_case]# robot -d /opt/robotframework/yangxu_case/jieguo /opt/robotframework/yangxu_case/cc ============================================================================== Cc ============================================================================== Cc.Cc1 ============================================================================== cc11 | PASS | ------------------------------------------------------------------------------ Cc.Cc1 | PASS | 1 critical test, 1 passed, 0 failed 1 test total, 1 passed, 0 failed ============================================================================== Cc | PASS | 1 critical test, 1 passed, 0 failed 1 test total, 1 passed, 0 failed ============================================================================== Output: /opt/robotframework/yangxu_case/jieguo/output.xml Log: /opt/robotframework/yangxu_case/jieguo/log.html Report: /opt/robotframework/yangxu_case/jieguo/report.html [root@c-gksk-node03-dev yangxu_case]#
参考:
https://www.5axxw.com/questions/content/vv7nev
Robot Framework自动化测试----浏览器的无头(headless)模式和命令行运行脚本_weixin_39430584的博客-CSDN博客_浏览器无头模式
不可错过的自动化测试框架:robotframework之WebDriver功能配置 - 知乎



