我们是Protractor的新手,正在通过代码来更好地理解其功能主义者,并与使用selenium编写测试相比。作为练习,我们尝试使用页面对象
自动化angularjs主页(http://www.angularjs.org)我们的TestSpec.js文件如下
'use strict';
var DevelopPage = require('../test_11th/Develop_pom.js');
describe('angularjs homepage', function () {
var Devpage;
beforeEach(function () {
Devpage = new DevelopPage();
});
it('Develop page should be open', function () {
Devpage.click_develop().click();
//Devpage.Api_Reference();
//Devpage.func_link();
//Devpage.search('angular');
});
});
和页面对象文件Develop_pom.js如下
'use strict';
var DevelopPage = function () {
browser.get('http://www.angularjs.org');
};
DevelopPage.prototype = Object.create({}, {
click_develop: { function ()
{ browser.driver.findElement(By.linkText("Develop")).click(); }},
Api_Reference: { function ()
{ browser.driver.findElement(By.linkText("API Reference")).click(); }},
func_link: { function ()
{ browser.driver.findElement(By.linkText("function")).click(); }},
search: { : function (txt)
{ element(by.model('q')).click().sendKeys(txt); }}
});
在运行它时我们遇到了错误 1)异常加载:C:\ Users \ kirti.vm \ AppData \ Roaming \ npm \ node_modules \ protractor \ test_11th \ AngularSpec.js错误 信息: SyntaxError:意外的令牌( 堆栈跟踪: SyntaxError:意外的令牌( at require(module.js:380:17) 在对象。 (C:\用户\ kirti.vm \应用程序数据\漫游\ NPM \ node_modules \量角器\ test_11th \ AngularSpec.js:4:21)
在0.012秒内完成 1次测试,1次断言,1次失败
你可以告诉我们我们出错的地方和地点。我们是否可以不使用页面对象来实现我们的测试并在spec脚本中调用这些页面对象。答案 0 :(得分:1)
您需要在文件末尾导出页面对象:
module.exports = DevelopPage;
如果您想要查看更清晰的语法,请查看以下示例:
https://github.com/angular/protractor/blob/master/website/test/e2e/api-page.js