【问题标题】:Protractor E2E angular "angular could not be found on the window"量角器 E2E 角度“在窗口上找不到角度”
【发布时间】:2015-03-28 18:44:37
【问题描述】:

在 Angular 项目 Error: Error while waiting for Protractor to sync with the page: "angular could not be found on the window" 中运行测试后,我遇到了一个奇怪的错误。我的量角器配置如下所示:

require('coffee-script').register();

exports.config = {
  seleniumServerJar: './node_modules/protractor/selenium/selenium-server-standalone-2.39.0.jar',
  seleniumAddress: 'http://localhost:4444/wd/hub',

  capabilities: {
    browserName: 'chrome'
    //'chromeOptions': {
    //  'args': ['--disable-extensions']
    //}
  },

  specs: [
    '*_spec.coffee'
  ],

  allScriptsTimeout: 10000000000,
  baseUrl: 'http://localhost:9003/',

  jasmineNodeOpts: {
    isVerbose: false,
    showColors: true,
    includeStackTrace: true,
    defaultTimeoutInterval: 10000000000
  }
};

并测试:

loginPage = require './pages/log_in_page'

describe 'Log In', ->

      it 'shows after login', ->
        loginPage()
        .setEmail('test@dispatch.me')
        .setPass('a46s75d4as765d4a6s7d54as76d5as74das76d5')

从页面获取信息:

module.exports = ->
      @email = element By.css '.test-i-login'
      @password = element By.css '.test-i-password'

      @setEmail = (name) =>
        @email.sendKeys(name)
        this

      @setPass = (number) =>
        @password.sendKeys(number)
        this
      this

github上有一些类似的问题,但我没有找到适合我的解决方案。谢谢回答。

【问题讨论】:

  • 你说的窗口有没有可能是非 Angular 的?这样的情况下会出现这样的错误

标签: angularjs protractor e2e-testing


【解决方案1】:

Protractor 是为测试 Angular 应用程序而构建的,这意味着在 HTML 正文中具有 ng-app 标记的网页以及与 Javascript 文件中的 Angular 代码相对应的控制器。

Protractor 如此有用的原因是 Angular 应用程序异步运行,这意味着当网页加载时它们并不总是完成加载。大多数测试框架会在页面完全准备好之前尝试单击内容、键入内容等。 Protractor 会检测所有在后台运行的 Angular 进程,这样您就不会在一切准备就绪之前意外地做某事。

Protractor 告诉您的是,它没有找到页面上运行的任何 Angular 进程。您的页面可能运行良好,但它只是不以 Protractor 可以识别的方式依赖 Angular。

这并不意味着 Protractor 无法测试页面。您可以使用 browser.driver.any_webdriver_command_here() 访问常规 WebDriver 命令。您将错过 Protractor 提供的出色同步功能。

【讨论】:

  • 不,这不是量角器。我的 gulp 任务运行错误并且 chromdriver 路径错误,因此如果没有 chrome 操作,它就无法执行任何操作。
【解决方案2】:

出现这种情况的原因是我的chromedriver路径安装错误。这就是为什么我收到这条消息“在窗口上找不到角度”。我遇到的另一个问题是,我需要手动运行 webdriver 作为后台进程。这通过正确的 gulp 任务(我做错了)来解决,看起来像这样:

gulp.task ['test'], ->
   runSequence start_server, run_protractor, end_server.

假设它会帮助遇到类似(愚蠢)问题的人。

【讨论】:

  • 您能否详细说明您更改 chromedriver 路径的位置?使用代码的实际 gulp 任务的示例也会有所帮助。谢谢。
【解决方案3】:

将 Protractor 配置中的 framework 选项更改为 'jasmine2' 为我解决了这个问题。

更多信息请参见this thread

【讨论】:

  • 是的,这对我有用。我更新到量角器 2.0 后遇到了这个问题。只需将framework: 'jasmine2', 添加到 conf.js 文件中
【解决方案4】:

在我的场景中,登录页面是无角度的,尝试了以下方式,为我解决了

browser.driver.findElement(By.id('username')).sendKeys('binnu');

【讨论】:

    猜你喜欢
    • 2015-09-13
    • 2015-01-31
    • 2015-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多