【问题标题】:Protractor / Webdriver error using Internet Explorer使用 Internet Explorer 的量角器/Webdriver 错误
【发布时间】:2014-01-07 08:55:47
【问题描述】:

我可以在 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)

【问题讨论】:

    标签: internet-explorer selenium selenium-webdriver protractor


    【解决方案1】:

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

    不幸的是,对于某些配置(SauceLabs 上的 IE、PhantomJS)来说,超时太低了,结果就是“异步加载”消息出现了这个问题。解决方案是向 browser.get 添加重试以及延长超时时间。

    TL;DR:升级到 0.18.1(最新,截至本文),您应该一切顺利!

    相关变更日志条目:

    v0.18

    (10aec0f) fix(pageload): 增加等待超时

    在 Sauce Labs 上测试 IE 时,300 毫秒的等待导致了问题。好像太短了“browser.get()”总是超时。增加它解决了我们的问题。

    v0.17

    (a0bd84b) fix(pageload):在 protractor.get() 期间添加等待以解决卸载问题

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

    关闭 #406。关闭 #85。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-20
      • 2023-04-03
      • 2016-08-26
      • 2014-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多