Javascript 量角器页对象实现
我最近开始使用量角器,但仍然发现很难在不同的做事方式之间做出选择 我看过不同的样式指南,它们展示了实现页面对象模式的不同方式(对象与函数)。从那以后,我了解到这主要归结于偏好() 当前,我的测试中的页面对象按以下方式设置:Javascript 量角器页对象实现,javascript,protractor,pageobjects,Javascript,Protractor,Pageobjects,我最近开始使用量角器,但仍然发现很难在不同的做事方式之间做出选择 我看过不同的样式指南,它们展示了实现页面对象模式的不同方式(对象与函数)。从那以后,我了解到这主要归结于偏好() 当前,我的测试中的页面对象按以下方式设置: /* example.page.js */ var loginHeader = element(by.css('div.header')); var usernameInput = element(by.id('username')); var passwordInput
/* example.page.js */
var loginHeader = element(by.css('div.header'));
var usernameInput = element(by.id('username'));
var passwordInput = element(by.id('password'));
var loginButton = element(by.id('login'));
var errorMessage = element(by.css('div.error'));
module.exports = {
loginUser: function () {
usernameInput.clear();
usernameInput.sendKeys('User1');
passwordInput.clear();
passwordInput.sendKeys('Password123');
loginButton.click();
},
getLoginHeaderText: function () {
return loginHeader.getText();
},
isErrorMessageDisplayed: function () {
return errorMessage.isDisplayed();
}
}
这是由其他人设置的,我想重新构造代码,使其更一致、更清晰、更可重用(…并在此过程中学习好的标准!)。我正在努力解决的主要问题是:我是否也应该导出元素并在spec文件中添加操作(仅将函数分组为多个操作)
因此,我可以在等级库文件中执行以下操作:
var examplePage = require('../pageobjects/example.specs.js');
expect(examplePage.loginHeader.isDisplayed()).toBeTruthy();
expect(examplePage.loginHeader.getText()).toEqual('Login');
examplePage.loginUser();
expect(examplePage.errorMessage.isPresent()).toBeFalsy();
这种方法的优缺点是什么
当前设置的功能(如单击登录按钮()
,getLoginHeaderText()
,iErrorMessageDisplayed()
等)的优缺点是什么
var examplePage = require('../pageobjects/example.specs.js');
expect(examplePage.loginHeader.isDisplayed()).toBeTruthy();
expect(examplePage.loginHeader.getText()).toEqual('Login');
examplePage.loginUser();
expect(examplePage.errorMessage.isPresent()).toBeFalsy();