如何从量角器配置中的Multicapabilities定义中获取deviceName值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从量角器配置中的Multicapabilities定义中获取deviceName值相关的知识,希望对你有一定的参考价值。
这对你们来说可能是一个重复的问题,但实际上我还没有得到答案。这是我在量角器配置文件中的多功能定义。我想访问deviceName参数值。我该怎么做?
exports.config = {
directConnect:true,
multiCapabilities: [
{
browserName: 'chrome',
'chromeOptions': {
'mobileEmulation': {
'deviceName': 'iPad'
}
}
}
],
在onPrepare下尝试但没有提供多功能值
browser.getCapabilities().then(function(c) {
console.log(c.get('deviceName'));
});
答案
不确定用getCapabilities()
解决,但你应该能够用getProcessedConfig()来解决这个问题。
getProcessedConfig
将返回您的整个配置设置的承诺(以及一些量角器默认值)。以你的榜样为例:
browser.getProcessedConfig().then((c) => {
console.log(c.capabilities.chromeOptions.mobileEmulation.deviceName);
});
另一答案
你可以在console.log(process.env)
区块制作onPrepare
并找到你想要的东西。
另一答案
试试getProcessedConfig()
http://www.protractortest.org/#/api?view=ProtractorBrowser.prototype.getProcessedConfig
或者只是简单的老傻:
let device_name = 'iPad'
exports.config = {
directConnect: true,
multiCapabilities: [{
browserName: 'chrome',
chromeOptions: {
mobileEmulation: {
deviceName: device_name
}
}
}],
onPrepare: function () {
console.log('Device name will be', device_name);
}
另一答案
提取设备名称按照Gunderson的建议工作,但现在我遇到了不同的问题我在onPrepare时无法访问代码块之外的变量值。
onPrepare: function () {
browser.getProcessedConfig().then(function (c) {
return global.deviceName
c.capabilities.chromeOptions.mobileEmulation.deviceName;
}).then(function () {
console.log("Device Name is:" + global.deviceName);
customDevice = global.deviceName;
}
);
};
customDevice不打印任何值.....在配置文件的顶部定义为全局变量。
我知道可能在访问它时犯了愚蠢的错误...... :)
以上是关于如何从量角器配置中的Multicapabilities定义中获取deviceName值的主要内容,如果未能解决你的问题,请参考以下文章