如何在beforeSession webdriverIO + Cucumber中设置chromeOptions的args

问题描述 投票:0回答:1

我需要在会话之前安装args。在特定标签上必须传输特定的屏幕分辨率。我试图实现beforeSession,但是在启动会话时必需的arg不在chromeOptions.args中。

我尝试了两个版本:

1. BeforeSession:

   beforeSession: function(){

        if(argv.tags ===("@virtualFront")){
            exports.config.capabilities[0].chromeOptions.args.push('--window-size=1080,1920');
        } else{
            exports.config.capabilities[0].chromeOptions.args.push(' --start-maximized');

        }
        console.log("it is from config beforeSession: "+exports.config.capabilities[0].chromeOptions.args);

    },

suite.cucumber.wdio.conf:

 browserName: 'chrome',
            chromeOptions: {
                args: ['--incognito',],
                binary: '/Program Files (x86)/Google/Chrome/Application/chrome.exe' 
            },
  1. BeforeSession: beforeSession:function(){ if(argv.tags ===("@virtualFront")){ argv.optionChrome = '--window-size=1080,1920'; } else{ argv.optionChrome=' --start-maximized'; } console.log("it is from config beforeSession: "+exports.config.capabilities[0].chromeOptions.args); },

suite.cucumber.wdio.conf:

 {
            browserName: 'chrome',
            chromeOptions: {
                args: ['--incognito',argv.optionChrome, ],
                binary: '/Program Files (x86)/Google/Chrome/Application/chrome.exe'
        },

当我使用分配给null的2个版本args时

selenium-chromedriver webdriver-io cucumberjs
1个回答
0
投票

解决方案是将脚本添加到suite.cucumber.wdio.conf的开头:

let chromeOpts = ['--incognito'];
if (argv.tags ==="@virtualFont"){
    chromeOpts +=` --window-size=1080,1920`
}else chromeOpts +=` --start-maximized`;

和:

chromeOptions: {
                args: [ chromeOpts, ],
                binary: '/Program Files (x86)/Google/Chrome/Application/chrome.exe'
 //for windows7
            },
© www.soinside.com 2019 - 2024. All rights reserved.