这是我的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()
})
})
})
当我执行此操作时,我收到错误,例如角度未定义,帮助我摆脱此错误
答案 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