如何访问Protroctor测试的chromedriver日志

Zac*_*bey 8 javascript selenium google-chrome selenium-webdriver protractor

我已经看到chromedriver可以输出日志文件(https://sites.google.com/a/chromium.org/chromedriver/logging)

此页面显示了在直接执行exe时如何设置它:

chromedriver.exe --verbose --log-path=chromedriver.log

我无法弄清楚如何在Protractor中设置它

我现在的 protractor.conf.js

require('babel/register');

exports.config = {
    framework: 'jasmine2',
    seleniumServerJar: './node_modules/protractor/selenium/selenium-server-standalone-2.45.0.jar'
};
Run Code Online (Sandbox Code Playgroud)

@ alecxe下面的答案量角器的浏览器设置文档我尝试添加以下(有和没有--s),但没有明显的效果:

    capabilities: {
        browserName: "chrome",
        chromeOptions: {
            args: [
                "--verbose",
                "--log-path=chromedriver.log"
            ]
        }
    }
Run Code Online (Sandbox Code Playgroud)

我也试过指定一个绝对路径(log-path=/chromedriver.log)也没用.

P.T*_*.T. 8

我们使用shell脚本添加chromedriver日志记录以及其他检查.然后,您可以在shell脚本中指向量角器:

量角器配置:

// When running chromedriver, use this script:
chromeDriver: path.resolve(topdir, 'bin/protractor-chromedriver.sh'),
Run Code Online (Sandbox Code Playgroud)

斌/ protractor-chromedriver.sh

TMPDIR="/tmp"
NODE_MODULES="$(dirname $0)/../node_modules"
CHROMEDRIVER="${NODE_MODULES}/protractor/selenium/chromedriver"
LOG="${TMPDIR}/chromedriver.$$.log"

fatal() {
    # Dump to stderr because that seems reasonable
    echo >&2 "$0: ERROR: $*"
    # Dump to a logfile because webdriver redirects stderr to /dev/null (?!)
    echo >"${LOG}" "$0: ERROR: $*"
    exit 11
}


[ ! -x "$CHROMEDRIVER" ] && fatal "Cannot find chromedriver: $CHROMEDRIVER"

exec "${CHROMEDRIVER}" --verbose --log-path="${LOG}" "$@"
Run Code Online (Sandbox Code Playgroud)


Jmr*_*Jmr 8

你总是可以在一个单独的过程中启动你自己的chromedriver实例,并告诉Protractor连接到它.例如,如果您使用以下命令启动chromedriver:

chromedriver --port=9515 --verbose --log-path=chromedriver.log

然后您可以使用Protractor的配置文件,如下所示:

   exports.config = {
     seleniumAddress: 'http://localhost:9515',
     capabilities: {
       'browserName': 'chrome'
     },
     specs: ['example_spec.js'],
   };
Run Code Online (Sandbox Code Playgroud)


ale*_*cxe 5

根据protractor源代码,chromedriver服务在没有任何参数的情况下启动,并且没有直接的方法来配置参数.尽管量角器使用的chromedriver的Service Builder实际上具有指定详细程度和日志路径的能力:

var service = new chrome.ServiceBuilder()
    .loggingTo('/my/log/file.txt')
    .enableVerboseLogging()
    .build();
Run Code Online (Sandbox Code Playgroud)

旧的(不正确的)答案:

您需要设置chrome参数:

capabilities: {
    browserName: "chrome",
    chromeOptions: {
        args: [
            "verbose", 
            "log-path=chromedriver.log"
        ]
    }
},
Run Code Online (Sandbox Code Playgroud)

也可以看看: