Internet explorer 使用Internet Explorer时出现量角器/Web驱动程序错误

Internet explorer 使用Internet Explorer时出现量角器/Web驱动程序错误,internet-explorer,selenium,selenium-webdriver,protractor,Internet Explorer,Selenium,Selenium Webdriver,Protractor,我能够在windows和linux上用chrome很好地运行量角器,但只要我转到IE(通过saucelabs的任何版本),我就会得到一个错误。我用的是最新的量角器 Stacktrace: Error: Error while running testForAngular: JavaScript error in async script. (WARNING: The server did not provide any stacktrace information) Command

我能够在windows和linux上用chrome很好地运行量角器,但只要我转到IE(通过saucelabs的任何版本),我就会得到一个错误。我用的是最新的量角器

Stacktrace:
  Error: Error while running testForAngular: JavaScript error in async script. (WARNING:      The server did not provide any stacktrace information)
Command duration or timeout: 34 milliseconds
Build info: version: '2.30.0', revision: 'dc1ef9c', time: '2013-02-19 00:15:27'
System info: os.name: 'Windows Server 2008 R2', os.arch: 'x86', os.version: '6.1', java.version: '1.6.0_35'
Session ID: c0f07d15-af3d-45d4-8248-323bf104620b
Driver info: org.openqa.selenium.ie.InternetExplorerDriver
Capabilities [{platform=WINDOWS, elementScrollBehavior=0, javascriptEnabled=true, enablePersistentHover=true, ignoreZoomSetting=false, browserName=internet explorer, enableElementCacheCleanup=true, unexpectedAlertBehaviour=dismiss, version=10, cssSelectorsEnabled=true, ignoreProtectedModeSettings=false, requireWindowFocus=false, allowAsynchronousJavaScript=false, handlesAlerts=true, initialBrowserUrl=, nativeEvents=true, takesScreenshot=true}]
at Error (<anonymous>)
at node_modules/selenium-webdriver/lib/webdriver/promise.js:1311:15
at node_modules/selenium-webdriver/lib/webdriver/promise.js:1460:7
at node_modules/selenium-webdriver/lib/goog/base.js:1178:15
at webdriver.promise.ControlFlow.runInNewFrame_ (node_modules/selenium-webdriver/lib/webdriver/promise.js:1438:20)
at notify (node_modules/selenium-webdriver/lib/webdriver/promise.js:328:12)
at notifyAll (node_modules/selenium-webdriver/lib/webdriver/promise.js:297:7)
at reject [as errback] (node_modules/selenium-webdriver/lib/webdriver/promise.js:423:7)
at reject (node_modules/selenium-webdriver/lib/webdriver/promise.js:1624:5)
at webdriver.promise.ControlFlow.abortFrame_ (node_modules/selenium-webdriver/lib/webdriver/promise.js:1397:9)
==== async task ====
WebDriver.executeScript()
at webdriver.WebDriver.schedule (node_modules/selenium-webdriver/lib/webdriver/webdriver.js:266:15)
at webdriver.WebDriver.executeAsyncScript (node_modules/selenium-webdriver/lib/webdriver/webdriver.js:506:15)
at /Users/kmunns/Dev/steepandcheap-www/node_modules/protractor/lib/protractor.js:528:21
at /Users/kmunns/Dev/steepandcheap-www/node_modules/selenium-webdriver/lib/goog/base.js:1178:15
at webdriver.promise.ControlFlow.runInNewFrame_ (node_modules/selenium-webdriver/lib/webdriver/promise.js:1438:20)
at notify (node_modules/selenium-webdriver/lib/webdriver/promise.js:328:12)
at notifyAll (node_modules/selenium-webdriver/lib/webdriver/promise.js:297:7)
at reject (node_modules/selenium-webdriver/lib/webdriver/promise.js:423:7)
at webdriver.promise.ControlFlow.runInNewFrame_ (node_modules/selenium-webdriver/lib/webdriver/promise.js:1464:5)
==== async task ====
at null.<anonymous> (node_modules/protractor/jasminewd/index.js:53:12)
at null.<anonymous> (node_modules/protractor/node_modules/minijasminenode/lib/async-callback.js:45:37)
at Timer.listOnTimeout [as ontimeout] (timers.js:110:15)
Stacktrace:
错误:在异步脚本中运行testForAngular:JavaScript时出错。(警告:服务器未提供任何stacktrace信息)
命令持续时间或超时:34毫秒
生成信息:版本:“2.30.0”,修订版:“dc1ef9c”,时间:“2013-02-19 00:15:27”
系统信息:os.name:'Windows Server 2008 R2',os.arch:'x86',os.version:'6.1',java.version:'1.6.035'
会话ID:c0f07d15-af3d-45d4-8248-323bf104620b
驱动程序信息:org.openqa.selenium.ie.InternetExplorerDriver
能力[{platform=WINDOWS,elementScrollBehavior=0,javascriptEnabled=true,enablePersistentHover=true,IgnoreZoomSet=false,browserName=internet explorer,enableElementCacheCleanup=true,unexpectedAlertBehaviour=Dismission,version=10,CssElectorEnabled=true,ignoreProtectedModeSettings=false,RequindowFocus=false,allowAsynchronousJavaScript=false、 handlesAlerts=true,initialBrowserUrl=,nativeEvents=true,takesScreenshot=true}]
错误()
在节点_modules/selenium webdriver/lib/webdriver/promise.js:1311:15
在节点_modules/selenium webdriver/lib/webdriver/promise.js:1460:7
在节点_modules/selenium webdriver/lib/goog/base.js:1178:15
在webdriver.promise.ControlFlow.runInNewFrame(节点模块/selenium-webdriver/lib/webdriver/promise.js:1438:20)
在notify(node_modules/selenium-webdriver/lib/webdriver/promise.js:328:12)
notifyAll(node_modules/selenium webdriver/lib/webdriver/promise.js:297:7)
在拒绝[as errback](node_modules/selenium webdriver/lib/webdriver/promise.js:423:7)
拒绝时(node_modules/selenium webdriver/lib/webdriver/promise.js:1624:5)
在webdriver.promise.ControlFlow.abortFrame(node_modules/selenium-webdriver/lib/webdriver/promise.js:1397:9)
==异步任务====
WebDriver.executeScript()
在webdriver.webdriver.schedule(node_modules/selenium webdriver/lib/webdriver/webdriver.js:266:15)
在webdriver.webdriver.executeAsyncScript(node_modules/selenium webdriver/lib/webdriver/webdriver.js:506:15)
位于/Users/kmunns/Dev/stopendandcheap www/node_modules/dragrator/lib/dragrator.js:528:21
位于/Users/kmunns/Dev/stopendandcheap www/node_modules/selenium webdriver/lib/goog/base.js:1178:15
在webdriver.promise.ControlFlow.runInNewFrame(节点模块/selenium-webdriver/lib/webdriver/promise.js:1438:20)
在notify(node_modules/selenium-webdriver/lib/webdriver/promise.js:328:12)
notifyAll(node_modules/selenium webdriver/lib/webdriver/promise.js:297:7)
拒绝时(node_modules/selenium webdriver/lib/webdriver/promise.js:423:7)
在webdriver.promise.ControlFlow.runInNewFrame(节点模块/selenium-webdriver/lib/webdriver/promise.js:1464:5)
==异步任务====
空。(node_modules/dragrator/jasminewd/index.js:53:12)
空。(node_modules/dragrator/node_modules/minijasminenode/lib/async callback.js:45:37)
at Timer.listOnTimeout[as onttimeout](timers.js:110:15)

这是一个影响0.17/0.18之前版本的量角器的错误。核心问题是browser.get没有明确使用浏览器导航功能;它是一个包装函数,使用JS更改位置,然后将信息加载到DOM中

不幸的是,对于某些配置(即在SauceLabs、PhantomJS上),超时太低,其结果是“异步加载”消息出现此问题。解决方案是向browser.get添加重试并延长超时时间

TL;DR:升级到0.18.1(最新版本,自本帖发布之日起),您就可以开始了

相关变更日志条目:

v0.18 (10aec0f)修复(页面加载):增加等待超时

在酱油实验室测试IE时,300毫秒的等待造成了问题。它似乎太短了。“browser.get()”总是超时。增加它解决了我们的问题

v0.17 (a0bd84b)修复(pageload):在量角器.get()期间添加等待以解决卸载问题

某些系统在开始异步脚本执行之前不会等待浏览器卸载事件完成

关闭406。关闭85