【问题标题】:Getting an errors while executing protractor e2e tests执行量角器 e2e 测试时出错
【发布时间】:2013-09-30 05:38:07
【问题描述】:

这是我的 refenceConf.js 文件,我在规范中给出了 testapp_spec,js,我把它们都放在了同一个地方

exports.config = {
  seleniumServerJar: './selenium/selenium-server-standalone-2.35.0.jar',
  seleniumPort: null,

  chromeDriver: './selenium/chromedriver',

  seleniumArgs: [],

  sauceUser: null,
  sauceKey: null,

  seleniumAddress: null,

  specs: [
    'testapp_spec.js'
  ],

  capabilities: {
    'browserName': 'chrome'
  },

  baseUrl: 'http://localhost:8000',

  rootElement: 'body',

  onPrepare: function() {

  },

  jasmineNodeOpts: {

    onComplete: null,

    isVerbose: false,

    showColors: true,

    includeStackTrace: true,

    defaultTimeoutInterval: 30000
  }
};

这是我的 testapp_spec.js,我正在编写一个测试用例来显示主页

var util = require('util');

describe('longer example', function() {
  var ptor = protractor.getInstance();
  beforeEach(function() {
    ptor.get('../testapp/app/index.html')
  })

  it('should load the home page', function() {
    body = ptor.findElement(protractor.By.tagName('body'));
    body.isDisplayed().then(function() {
      expect(body).toBeDefined()
    })
  })
})

当我执行此操作时,我收到一个错误,如未定义角度帮助我摆脱此错误

【问题讨论】:

  • 量角器e2e测试有高手吗?????????
  • +1 在这里。我有同样的问题。我按照量角器的 github 页面上的示例以及在此处找到的视频中的示例进行操作:link,但我没有任何运气让它真正运行我的测试。 selenium 服务器启动良好,并导航到我网站的主页,但是当它尝试访问 Angular 时会死机说 UnknownError: javascript error: angular is not defined。如果有人有任何想法,将不胜感激。
  • 我在这里记录了一个类似的问题:stackoverflow.com/questions/19391813/… 和你在同一个地方。到目前为止,对量角器的支持似乎是严格在 SO 上的,即便如此,也没有多少人知道答案。

标签: angularjs protractor


【解决方案1】:
browser.driver.get('../testapp/app/index.html')
browser.driver.findElement() 

【讨论】:

    【解决方案2】:

    您是否尝试在配置文件中更新 selenium 端口号?在这个视频中被推荐 - http://www.youtube.com/watch?v=idb6hOxlyb8

    这对我有用(假设您正在考虑相对路径并从那里执行测试) -

    // A reference configuration file.
    
    exports.config = {
      seleniumServerJar: './selenium/selenium-server-standalone-2.35.0.jar',
      seleniumPort: 4444,
      chromeDriver: './selenium/chromedriver',
    
      capabilities: {
        'browserName': 'chrome'
      },
    
      specs: ['./spec/*_spec.js'],
    
      jasmineNodeOpts: {
        onComplete: null,
        isVerbose: true,
        showColors: true,
        includeStackTrace: false,
        defaultTimeoutInterval: 30000
      }
    };
    

    【讨论】:

    • 问题不在于端口。 Angular 应用程序正确加载并运行,但 Protractor 似乎不知道它的存在。
    【解决方案3】:

    这是因为您为其编写测试的项目不是 Angular 的。在声明你的量角器实例后添加它

    var driver =  ptor.driver;
    

    这样,您可以帮助量角器了解您的页面是非角度的,并且您正在使用 webdriver 实例来查找元素等。

    希望这会有所帮助。

    【讨论】:

      【解决方案4】:

      尝试ptor.driver.get 而不是ptor.get

      【讨论】:

        【解决方案5】:

        确保在 /testapp/app/index.html 内的脚本标签中包含 Angular js 库。 并将你的身体定义为

         <body ng-app="angularAppDemo">
        

        像这样在 index.html 中写一个脚本...

        var app=angular.module('angularAppDemo',[]);
        

        如果有效,请告诉我。 问题是量角器默认会寻找角度应用程序。由于您没有提到任何 Angular js 库,因此会引发此错误。 测试非 Angular js 应用程序并获得有关量角器的更多知识。参考this link

        【讨论】:

          猜你喜欢
          • 2023-03-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多