2015-12-11 13 views
14

Po aktualizacji Angular JS 1.4.x do Angular 2, testy Selenium nie mogą już działać za pośrednictwem cholernika-biegacza na Firefox. Jak tylko angularjs jest załadowany, następujące błąd następuje:Nie można uruchomić Selenium za pomocą kątomierza w przeglądarce Firefox po aktualizacji do Angular 2

D:\...\node_modules\grunt-protractor-runner\node_modules\protractor\node_modules\selenium-webdriver\lib\atoms\error.js:108 
    var template = new Error(this.message); 
       ^
UnknownError: Permission denied to access property "toString" 
Build info: version: '2.48.2', revision: '41bccdd', time: '2015-10-09 19:59:12' 
System info: host: 'NAGWS72', ip: '192.168.210.23', os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.7.0_79' 
Driver info: driver.version: unknown 
    at new bot.Error (D:\...\node_modules\grunt-protractor-runner\node_modules\protractor\node_modules\selenium-webdriver\lib\atoms\error.js:108:18) 
    at Object.bot.response.checkResponse (D:\...\node_modules\grunt-protractor-runner\node_modules\protractor\node_modules\selenium-webdriver\lib\atoms\response.js:109:9) 
    at D:\...\node_modules\grunt-protractor-runner\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\webdriver.js:379:20 
    at [object Object].promise.Promise.goog.defineClass.invokeCallback_ (D:/.../node_modules/grunt-protractor-runner/node_modules/protractor/node_modules/selenium-webdriver/lib/goog/../webdriver/promise.js:1337:14) 
    at [object Object].promise.ControlFlow.goog.defineClass.goog.defineClass.abort_.error.executeNext_.execute_ (D:/.../node_modules/grunt-protractor-runner/node_modules/protractor/node_modules/selenium-webdriver/lib/goog/../webdriver/promise.js:2776:14) 
    at [object Object].promise.ControlFlow.goog.defineClass.goog.defineClass.abort_.error.executeNext_ (D:/.../node_modules/grunt-protractor-runner/node_modules/protractor/node_modules/selenium-webdriver/lib/goog/../webdriver/promise.js:2758:21) 
    at goog.async.run.processWorkQueue (D:\...\node_modules\grunt-protractor-runner\node_modules\protractor\node_modules\selenium-webdriver\lib\goog\async\run.js:124:15) 
    at process._tickCallback (node.js:366:9) 
From: Task: <anonymous> 
    at [object Object].pollCondition [as _onTimeout] (D:/.../node_modules/grunt-protractor-runner/node_modules/protractor/node_modules/selenium-webdriver/lib/goog/../webdriver/promise.js:2233:16) 
    at Timer.listOnTimeout (timers.js:92:15) 
From: Task: <anonymous wait> 
    at [object Object].promise.ControlFlow.goog.defineClass.getSchedule.indent.wait (D:/.../node_modules/grunt-protractor-runner/node_modules/protractor/node_modules/selenium-webdriver/lib/goog/../webdriver/promise.js:2226:17) 
    at [object Object].webdriver.WebDriver.wait (D:\...\node_modules\grunt-protractor-runner\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\webdriver.js:716:21) 
    at [object Object].to.(anonymous function) [as wait] (D:\...\node_modules\grunt-protractor-runner\node_modules\protractor\lib\protractor.js:65:25) 
    at global.doLogin (D:\...\nisXplorerConfig.js:44:21) 
    at exports.config.onPrepare (D:\...\nisXplorerConfig.js:79:9) 
    at D:\...\node_modules\grunt-protractor-runner\node_modules\protractor\lib\util.js:54:41 
    at Function.promise (D:\...\node_modules\grunt-protractor-runner\node_modules\protractor\node_modules\q\q.js:650:9) 
    at Object.exports.runFilenameOrFn_ (D:\...\node_modules\grunt-protractor-runner\node_modules\protractor\lib\util.js:44:12) 
    at [object Object].Runner.runTestPreparer (D:\...\node_modules\grunt-protractor-runner\node_modules\protractor\lib\runner.js:76:17) 
    at Object.exports.run (D:\...\node_modules\grunt-protractor-runner\node_modules\protractor\lib\frameworks\jasmine.js:89:17) 

Chrome i Internet Explorer działać.

Problem pojawia się z następujących składników:

  • Firefoksa Wersja 38 i 42
  • grunt-kątomierz-płoza 2.1.0 i 3.0.0 (który wykorzystuje selen serwera, autonomicznego-2.48.2 JAR)
  • kątomierza 2.5.1 i 3.0.0

Poniżej węzła moduły są w użyciu (package.json)

{ 
    "name": "...", 
    "version": "1.0.0", 
    "description": "", 
    "main": "Gruntfile.js", 
    "dependencies": { 
    "jasmine-reporters": "^2.0.7", 
    "protractor-video-recorder": "^0.1.0" 
    }, 
    "devDependencies": { 
    "grunt-protractor-runner": "^3.0.0", 
    "jasmine-spec-reporter": "^2.4.0", 
    "lodash": "^3.10.1", 
    "protractor-console": "^2.0.0" 
    }, 
    "scripts": { 
    "test": "echo \"Error: no test specified\" && exit 1" 
    }, 
    "author": "", 
    "license": "ISC" 
} 

W teście Selenium nie ma części kodu, która może być zlokalizowana w celu wygenerowania błędu. Błąd pojawia się właśnie w momencie załadowania AngularJS.

+0

Czy możesz odtworzyć problem na dowolnej publicznej stronie internetowej angular2? (powiedzmy https://angular.io/). Dzięki. – alecxe

+0

Próbowałeś także z 'directConnect'? – alecxe

+0

Dzięki za odpowiedź, @alecxe. Właśnie wypróbowałem to: - testowanie przeciwko angular.io działa dobrze. - 'directConnect' produkuje dokładnie ten sam błąd Oto mój config: '> opcje: { > configfile: ".... js" > args: { > \t DirectConnect: true, > baseURL: "...", > możliwości: { > 'browserName': 'firefox', > 'browser': 'Firefox' >}, > specyfikacje: [ > testFiles”/ ....js ' >], >} >} ' – gogol

Odpowiedz

5

Aby wyizolować problem, zainstalowałem próbkę Angular 2 Go with Protractor ! i otrzymałem dokładnie taki sam błąd (jak w moim pierwszym komentarzu) po zmianie browserName: 'chrome' na firefox.

W ten sposób stworzyłem new issue na stronie Github protektorów.

+0

Awesome, teraz odtworzono problem. Dzięki. – alecxe

Powiązane problemy