Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 量角器页对象实现_Javascript_Protractor_Pageobjects - Fatal编程技术网

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()).toBe­Tru­thy();
expect(examplePage.loginHeader.getText()).toEqual('Login');
examplePage.loginUser();
expect(examplePage.errorMessage.isPresent()).toBe­Fal­sy();
这种方法的优缺点是什么

当前设置的功能(如
单击登录按钮()
getLoginHeaderText()
iErrorMessageDisplayed()
等)的优缺点是什么

var examplePage = require('../pageobjects/example.specs.js');

expect(examplePage.loginHeader.isDisplayed()).toBe­Tru­thy();
expect(examplePage.loginHeader.getText()).toEqual('Login');
examplePage.loginUser();
expect(examplePage.errorMessage.isPresent()).toBe­Fal­sy();