gpt4 book ai didi

Protractor 根据输入动态选择浏览器

转载 作者:行者123 更新时间:2023-12-02 02:52:37 25 4
gpt4 key购买 nike

我是 Protractor 的新手,我希望能够运行我的 chrome 浏览器绘制或 headless 。

所以我设置了这样的东西

 let chrome = {
browserName: 'chrome',
platform: 'MAC',
'max-duration': '1800',

};

let chromeHeadless = {
browserName: 'chrome',
chromeOptions: {
args: [ "--headless", "--disable-gpu", "--window-size=800,600" ]
}
};

browserDefault = browser.params.browserToUse

exports.config = {
params: {

'browserToUse': "get from user'

},
capabilities: browserDefault,
}

我把这段代码运行为

 protractor config.js --params.browserToUse='chromeHeadless' 

但这行不通。 Protractor 没有说它不理解“browser.params.browserInput”。让 Protractor 根据输入动态选择 chrome 或 chromeheadless 的正确方法是什么

最佳答案

全局变量browser只有在代码运行到onPrepare()时才被初始化。您在 onPrepare() 函数之外使用了 browserbrowser 尚未初始化,它是未定义的,所以您遇到了错误。

另一点你需要得到它是当变量 browser 初始化时,浏览器窗口已经打开,意味着 Protractor 知道启动浏览器的功能。因此你不能使用 browser.params.xxx 来指定哪些功能,你需要在它初始化 browser 变量之前告诉 Protractor 这些功能。

let capabilitiesMap = {
'chrome-headful' : {
browserName: 'chrome',
platform: 'MAC',
'max-duration': '1800',
},

'chrome-headless': {
browserName: 'chrome',
chromeOptions: {
args: [ "--headless", "--disable-gpu", "--window-size=800,600" ]
}
}
};

let browserToUse = 'chrome-headful'; // set default value

// extract the browserToUse value from cli
process.argv.slice(3).forEach(function(arg) {
var name = arg.split('=')[0];
var value = arg.split('=')[1];
var name = name.replace('--', '');

if (name === 'browserToUse') {
if (Object.prototype.hasOwnProperty.call(capabilitiesMap, value) ) {
browserToUse = value;
}
}
});


let config = {

seleniumAddress: '',
specs: [],
onPrepare: function() {}

};

config.capabilities = capabilitiesMap[browserToUse];

exports.config = config;

CLI 示例:protractor conf.js --browserToUse=chrome-headless

关于 Protractor 根据输入动态选择浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51371913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com