Maven Robot框架,使用命令行标志打开浏览器以保存浏览器日志

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

我正在尝试将浏览器(chrome)日志消息(React日志、js错误等)保存到robot框架测试运行中的一个文件中。显然,这比应该的要困难,因为我在robot框架中找不到方便的API来实现这一点

我发现chrome可以使用
--启用日志记录--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