目前我正在尝试在移动设备上模拟Chrome浏览器(例如Apple iPad \ Samsung Galaxy)。在conf.js中传递硬编码的deviceName时,它工作正常。
但我想在飞行中更换设备。我已经尝试在命令行中传递deivceName参数但没有运气。它没有更新conf.js中的值,但是在启动webdriver实例后,我看到更新的参数值:
protractor mobiledevice.js --params.device="Apple iPhone 5"
-
"use strict";
var config = require('./conf.js').config;
config.params = {
device: 'Google Nexus 6'
}
config.capabilities = {
'chromeOptions': {
'mobileEmulation': {
'deviceName': config.params.device
}
}
};
exports.config = config;
问题:如何模拟通过命令行作为参数传递的设备?
答案 0 :(得分:1)
您可以定义getMultiCapabilities
function:
exports.config = {
getMultiCapabilities: function () {
return [{
chromeOptions: {
mobileEmulation: {
deviceName: this.params.device
}
}
}];
},
// ...
};
然后传递device
参数:
protractor mobiledevice.js --params.device="Apple iPhone 5"