2016-04-01 2 views
3

У меня есть проблема с моим кодом и другим поведением в зависимости от используемой версии утяжелителя. Мои тесты работают с транспортиром версии 2.5.1. но для получения всех преимуществ от новейшей разработки i попытался перейти к версии 3.x.Возможности браузера - транспортир 2 против транспортира 3

Мои OnPrepare-функция отлично с транспортир версии 2.5.1 работает:

onPrepare: function() { //configure junit xml report 

    browser.getCapabilities().then(function (capabilities) { 
     browser.capabilities = capabilities; 
     browser.browserName = capabilities.caps_.browserName; 
    }); 

    var jasmineReporters = require('jasmine-reporters'); 
    jasmine.getEnv().addReporter(new jasmineReporters.JUnitXmlReporter({ 
     consolidateAll: true, 
     filePrefix: 'frontendtests_result', 
     savePath: 'reports' 
    })); 

    var htmlScreenshotReporter = require('protractor-jasmine2-screenshot-reporter'); 
    jasmine.getEnv().addReporter(
     new htmlScreenshotReporter({ 
      dest: 'screenshots', 
      pathBuilder: function (currentSpec) { 
       return browser.capabilities.get('platform') + '/' + browser.capabilities.get('browserName') + '/v.' + browser.capabilities.get('version') + '/' + currentSpec.fullName.substring(0, 4) + '/' + currentSpec.fullName; 
      }, 
      preserveDirectory: false, 
      ignoreSkippedSpecs: true, 
      reportOnlyFailedSpecs: true, 
      captureOnlyFailedSpecs: false, 
      filename: 'my-report.html', 
      reportTitle: 'End-to-end-Tests e.VISOR v.4.0 Development Status', 
      showSummary: true, 
      showQuickLinks: true 
     }) 
); 
}, 



With protractor version 3.2.2 i got the following error message: 

     C:\Program Files (x86)\nodejs\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:1329 
      return callbackFn(this.value_); 
       ^
    TypeError: Cannot read property 'browserName' of undefined 
     at D:\SWE\Nitsch\Entwicklung\Hauptprojekt\Entwicklungszweig\Client\EnMS.Angular\EnMS\Frontendtests\protractor.config.js:83:53 
     at Promise.invokeCallback_ (C:\Program Files (x86)\nodejs\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:1329:14) 
     at TaskQueue.execute_ (C:\Program Files (x86)\nodejs\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2790:14) 
     at TaskQueue.executeNext_ (C:\Program Files (x86)\nodejs\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2773:21) 
     at C:\Program Files (x86)\nodejs\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2652:27 
     at C:\Program Files (x86)\nodejs\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:639:7 
     at process._tickCallback (node.js:368:9) 
    [launcher] Process exited with error code 1 

Код строки ошибка conplaining о том

browser.browserName = capabilities.caps_.browserName; 

Что моя ошибка здесь? В чем разница между транспортиром 2 и 3 относительно получения возможностей браузера.

Любая помощь приветствуется;)

Заранее спасибо

С наилучшими пожеланиями

Äkki

ответ

2

Это изменено на capabilities.get('browserName').

+0

Работает как очарование - большое спасибо. –