不能通过量角器更新角2后在Firefox运行Selenium [英] Can't run Selenium via Protractor on Firefox after update to Angular 2

查看:170
本文介绍了不能通过量角器更新角2后在Firefox运行Selenium的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

更新角JS的1.4.x到角2之后,Selenium测试不能再通过咕噜-量角器亚军在火狐运行。一旦AngularJS被加载,下面的错误发生:

<$p$p><$c$c>D:\\...\
ode_modules\\grunt-protractor-runner\
ode_modules\\protractor\
ode_modules\\selenium-webdriver\\lib\\atoms\\error.js:108
  VAR模板=新的错误(this.message);
                 ^
不明错误:权限被拒绝访问财产的toString
构建信息:版本:2.48.2,修订版:'41bccdd,时间:2015年10月9日十九时59分12秒
系统信息:主持人:NAGWS72',IP:192.168.210.23,os.name:Windows 7的,os.arch:'86',os.version:'6.1',java.version:1.7.0_79
驱动方式:driver.version:未知
    在新bot.Error (D:\\...\
ode_modules\\grunt-protractor-runner\
ode_modules\\protractor\
ode_modules\\selenium-webdriver\\lib\\atoms\\error.js:108:18)
    在Object.bot.response.checkResponse (D:\\...\
ode_modules\\grunt-protractor-runner\
ode_modules\\protractor\
ode_modules\\selenium-webdriver\\lib\\atoms\\response.js:109:9)
    在D:\\...\
ode_modules\\grunt-protractor-runner\
ode_modules\\protractor\
ode_modules\\selenium-webdriver\\lib\\webdriver\\webdriver.js:379:20
    在[目标对象] .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)
    在[目标对象] .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)
    在[目标对象] .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)
    在goog.async.run.processWorkQueue (D:\\...\
ode_modules\\grunt-protractor-runner\
ode_modules\\protractor\
ode_modules\\selenium-webdriver\\lib\\goog\\async\\run.js:124:15)
    在process._tickCallback(node.js的:366:9)
来源:任务:其中;匿名&GT;
    在[目标对象] .pollCondition [如_onTimeout] (D:/.../node_modules/grunt-protractor-runner/node_modules/protractor/node_modules/selenium-webdriver/lib/goog/../webdriver/promise.js:2233:16)
    在Timer.listOnTimeout(timers.js:92:15)
来源:任务:其中,匿名等待&GT;
    在[目标对象] .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)
    在[目标对象] .webdriver.WebDriver.wait (D:\\...\
ode_modules\\grunt-protractor-runner\
ode_modules\\protractor\
ode_modules\\selenium-webdriver\\lib\\webdriver\\webdriver.js:716:21)
    在[目标对象]。要(匿名函数)作为等待(D:\\ ... \\ node_modules \\咕噜-量角器亚军\\ node_modules \\量角器\\ lib目录\\ protractor.js:65:25)。
    在global.doLogin(D:\\ ... \\ nisXplorerConfig.js:44:21)
    在exports.config.on prepare(D:\\ ... \\ nisXplorerConfig.js:79:9)
    在D:\\ ... \\ node_modules \\咕噜-量角器亚军\\ node_modules \\量角器\\ lib目录\\ util.js中:54:41
    在Function.promise(D:\\ ... \\ node_modules \\咕噜-量角器亚军\\ node_modules \\量角器\\ node_modules \\ Q \\ q.js:650:9)
    在Object.exports.runFilenameOrFn_(D:\\ ... \\ node_modules \\咕噜-量角器亚军\\ node_modules \\量角器\\ lib目录\\ util.js中:44:12)
    在[目标对象] .Runner.runTest preparer(D:\\ ... \\ node_modules \\咕噜-量角器亚军\\ node_modules \\量角器\\ lib目录\\ runner.js:76:17)
    在Object.exports.run (D:\\...\
ode_modules\\grunt-protractor-runner\
ode_modules\\protractor\\lib\\frameworks\\jasmine.js:89:17)

Chrome浏览器的Internet Explorer 做工精细。

问题出现带有以下组件:


  • 火狐版本38和42

  • 咕噜-量角器亚军2.1.0和3.0.0(使用硒服务器独立-2.48.2.jar)

  • 量角器2.5.1和3.0.0

以下节点模块都在使用(的package.json

  {
  名称: ...,
  版本:1.0.0
  说明:,
  主:Gruntfile.js
  依赖:{
    茉莉花记者:^ 2.0.7
    量角器-录像机:^ 0.1.0
  },
  devDependencies:{
    咕噜-量角器亚军:^ 3.0.0
    茉莉花-SPEC-记者:^ 2.4.0
    lodash:^ 3.10.1,
    量角器控制台:^ 2.0.0
  },
  脚本:{
    测试:回声\\错误:没有测试指定\\&放大器;&放大器; 1号出口
  },
  作者:,
  许可证:ISC
}

有在Selenium测试,它可以定位于产生错误没有code的一部分。刚刚出现在当AngularJS加载瞬间的错误。


解决方案

要隔离我装样品的角2转到与量角器,并得到了完全同样的错误(在我的第一个评论)之后,我改变了 browserName:铬火狐

因此​​,我创建了一个新问题上量角器GitHub页面

After updating Angular JS 1.4.x to Angular 2, Selenium tests can't run anymore via grunt-protractor-runner on Firefox. As soon as AngularJS is loaded, the following error occurs:

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 and Internet Explorer work fine.

The problem appears with the following components:

  • Firefox version 38 and 42
  • grunt-protractor-runner 2.1.0 and 3.0.0 (which uses selenium-server-standalone-2.48.2.jar)
  • protractor 2.5.1 and 3.0.0

The following node modules are in use (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"
}

There is no code part in the Selenium test, which can be localized to produce the error. The error appears just at the moment when AngularJS is loaded.

解决方案

To isolate the problem I installed the sample Angular 2 Go with Protractor ! and got exactly the same error (as in my first comment) after I changed browserName: 'chrome' to firefox.

Thus I created a new issue on Protractors github page.

这篇关于不能通过量角器更新角2后在Firefox运行Selenium的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆