Maven Robot框架,使用命令行标志打开浏览器以保存浏览器日志
我正在尝试将浏览器(chrome)日志消息(React日志、js错误等)保存到robot框架测试运行中的一个文件中。显然,这比应该的要困难,因为我在robot框架中找不到方便的API来实现这一点 我发现chrome可以使用Maven Robot框架,使用命令行标志打开浏览器以保存浏览器日志,maven,google-chrome,selenium,testing,robotframework,Maven,Google Chrome,Selenium,Testing,Robotframework,我正在尝试将浏览器(chrome)日志消息(React日志、js错误等)保存到robot框架测试运行中的一个文件中。显然,这比应该的要困难,因为我在robot框架中找不到方便的API来实现这一点 我发现chrome可以使用--启用日志记录--v=1标志启动,将消息直接记录到文件中。但是,如何在robot框架中通过打开浏览器关键字传递此标志?更准确地说,我实际上使用了robotframeworkmaven插件在远程服务器上使用headless浏览器运行测试 这就是jenkins当前通过执行远程sh
--启用日志记录--v=1
标志启动,将消息直接记录到文件中。但是,如何在robot框架中通过打开浏览器关键字传递此标志?更准确地说,我实际上使用了robotframeworkmaven插件
在远程服务器上使用headless浏览器运行测试
这就是jenkins当前通过执行远程shell任务在远程服务器上启动测试的方式
rm -rf tests
git clone git@*****/tests.git && cd tests
Xvfb :99 -ac -screen 0 1280x1024x24 &
export DISPLAY=:99
mvn -DforceOpenJpaExecution=true -Dbrowser=chrome -Dserver=***** -DchromeDriverPath=/usr/local/bin/chromedriver clean verify
下面是测试项目的pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>*****</groupId>
<artifactId>tests</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<name>tests</name>
<dependencies>
<dependency>
<groupId>com.github.markusbernhardt</groupId>
<artifactId>robotframework-selenium2library-java</artifactId>
<version>1.4.0.8</version>
</dependency>
</dependencies>
<build>
<defaultGoal>verify</defaultGoal>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>1.0-alpha-2</version>
<executions>
<execution>
<id>setPropertyChromeDriver</id>
<phase>integration-test</phase>
<goals>
<goal>set-system-properties</goal>
</goals>
<configuration>
<properties>
<property>
<name>webdriver.chrome.driver</name>
<value>${chromeDriverPath}</value>
</property>
</properties>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.robotframework</groupId>
<artifactId>robotframework-maven-plugin</artifactId>
<version>${robotframework-maven-plugin.version}</version>
<executions>
<execution>
<id>robotTest</id>
<phase>integration-test</phase>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
现在,我如何将--启用日志记录--v=1
传递给chrome驱动程序,或者有没有更方便的方法将浏览器日志传递到文件或测试结果
我找到了这段代码来设置标志,但我不知道如何将其应用到我的案例中基于关键字的资源中
from selenium import webdriver
options = webdriver.ChromeOptions()
# set some options
# for example:
# options.add_argument('--disable-logging')
driver = webdriver.Remote(desired_capabilities=options.to_capabilities())
当您需要通过Selenium2Library将选项传递给webdriver时,您应该使用关键字创建webdriver
(稍后转到
url)。在a中,我提供了一个同样适用于此处的答案
*** Settings ***
Library Selenium2Library
*** Test Cases ***
Log Chrome Console
${c_opts} = Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys, selenium.webdriver
Call Method ${c_opts} add_argument enable-logging
Call Method ${c_opts} add_argument v\=1
Create Webdriver Chrome crm_alias chrome_options=${c_opts}
Go To http://www.url.com
[Teardown] Close All Browsers
这会将参数添加到Chrome的命令行中
*** Settings ***
Library Selenium2Library
*** Test Cases ***
Log Chrome Console
${c_opts} = Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys, selenium.webdriver
Call Method ${c_opts} add_argument enable-logging
Call Method ${c_opts} add_argument v\=1
Create Webdriver Chrome crm_alias chrome_options=${c_opts}
Go To http://www.url.com
[Teardown] Close All Browsers