使用相同浏览器的量角器multiCapabilities

时间:2016-04-01 10:07:51

标签: google-chrome jasmine protractor karma-runner

我正在运行带有多种能力的量角器'如下:

multiCapabilities : [
{  
  name : 'ChromeIphone',
  logName : 'Chrome Iphone',
  browserName: 'chrome',
  chromeOptions: {
    'args': ['user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 8_0_2 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12A405 Safari/600.1.4']
  },
  mobileEmulationEnabled: true
},
{
  name : 'ChromeAndroid',
  logName : 'Chrome Android',
  platformName: 'android',
  browserName: 'chrome',
  newCommandTimeout: 60,
  chromeOptions: {
    'args': ['user-agent=Mozilla/5.0 (Linux; Android 4.4.4; Samsung Galaxy S4 - 4.4.4 - API 19 - 1080x1920 Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/33.0.0.0 Mobile Safari/537.36']
  }
}
],

这会导致启动两个Web驱动程序实例。当其中一个失败时,我想知道哪一个在我创建的报告中失败了。

我尝试在' onPrepare'。

中使用以下功能
browser.getCapabilities().then(function (cap) {
  browser.name = (cap.browserName === undefined) ? (cap.caps_) ? cap.caps_.browserName : 'chrome' : cap.browserName;
  console.log('Current browser: ' + browser.name);
});

由于我一直在使用' chrome'作为浏览器。

有没有什么方法可以在运行时知道正在使用的用户代理?或者也许有可能知道我的多功能性中的哪一个'失败了?

1 个答案:

答案 0 :(得分:0)

您可以从已处理的配置文件中获取值:

onPrepare: function() {
    browser.getProcessedConfig().then(function(currentConfig) {
        console.log('Current browser: ' + currentConfig.capabilities.name);

        // if you want to see all the properties, you can use this
        // console.log(JSON.stringify(currentConfig.capabilities, null, 4));
    });
};