执行量角器e2e测试时出错

时间:2013-09-30 05:38:08

标签: angularjs protractor

这是我的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()
    })
  })
})

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

5 个答案:

答案 0 :(得分:2)

browser.driver.get('../testapp/app/index.html')
browser.driver.findElement() 

答案 1 :(得分:1)

您是否尝试在配置文件中更新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
  }
};

答案 2 :(得分:0)

这是因为您编写测试的项目不是有角度的。在声明量角器实例

后添加此项
var driver =  ptor.driver;

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

希望这有帮助。

答案 3 :(得分:0)

尝试使用ptor.driver.get代替ptor.get

答案 4 :(得分:0)

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

 <body ng-app="angularAppDemo">

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

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

如果有效,请告诉我。 问题是默认情况下量角器会寻找角度应用程序。因为你没有提到任何角度js的库,它会抛出这个错误。 测试非角度js应用程序并获得有关量角器的更多知识。参考this link