1) Подготовьте файл capabilities.js
для хранения всех возможностей вашего браузера и экспортируйте функцию get()
следующим образом:
var capabilitiesList = {
'S6': {
'os_version': '5.0',
'device': 'Samsung Galaxy S6',
'real_mobile': 'true',
'browserstack.local': 'false',
'resolution': '800x600',
'acceptSslCerts': true,
'deviceOrientation': 'landscape'
},
'iPhone6': {
'os_version': '11.2',
'device': 'iPhone 6',
'real_mobile': 'true',
'browserstack.local': 'false',
'browserName': 'Chrome',
'browser_version': '68.0',
'acceptSslCerts': true,
'resolution': '800x600',
},
'iPad4': {
'os_version': '9.1',
'device': 'iPad Mini 4',
'browserstack.local': 'false',
'acceptSslCerts': true
},
'ie': {
'os': 'Windows',
'os_version': '10',
'browserName': 'IE',
'browser_version': '11.0',
'resolution': '1024x768',
'acceptSslCerts': true,
}
};
module.exports = function get(browsers) {
if (!!browsers) {
let multiCapabilities = [];
browsers = browsers.split('=')[1].trim();
browsers.split(',').forEach(function (browser) {
browser = browser.trim();
if (capabilitiesList.keys().includes(browser)) {
multiCapabilities.push(capabilitiesList[browser]);
}
});
return multiCapabilities.length === 0 ? undefined : multiCapabilities;
}
};
2) Измените транспортир conf.js
, чтобы принимать браузеры из строки cmd,затем вызовите функцию get()
для возврата списка возможностей.
let capabilities = require('./capabilities.js');
let browsers = process.argv.find((it) => {
return it.includes('--browsers=');
});
exports.config = {
seleniumAddress: 'http://localhost:4444/wd/hub',
specs: ['./test.js'],
capabilities: {
browserName: 'chrome'
},
multiCapabilities: capabilities.get(browsers),
jasmineNodeOpts: {
// If true, print colors to the terminal.
showColors: true,
// Default time to wait in ms before a test fails.
defaultTimeoutInterval: 3600000,
// Function called to print jasmine results.
print: function() {},
}
};
3) Укажите браузер в строке cmd
protractor conf.js --browsers=ie // for running only one browser
protractor conf.js --browsers=ie,iPad4 // for running multiple browsers
protractor conf.js // will run on chrome browser