【发布时间】:2015-05-14 04:30:45
【问题描述】:
我正在使用量角器来测试 Angular JS 应用程序。 我想使用页面对象模式,因此我需要将一个函数导出到另一个模块中。
这是我的 page-login.js 文件:
require("./login.spec.js");
var LoginPage = function ()
{
this.userName = element(by.id('login_form_user_input'));
this.password = element(by.id('login_form_password_input')) ;
this.loginButton = element(by.id('login_form_signin_button'));
this.loginText = element(by.css('#mainGlobalSearchBtn'));
this.loginError = element(by.xpath('html/body/div[1]/div[1]/div[1]/form/div/p'));
this.login = function (userName, password)
{
LoginPage.userName.sendKeys(userName);
LoginPage.password.sendKeys(password);
LoginPage.loginButton.click ();
browser.waitForAngular ();
};
};
exports.LoginPage = LoginPage;
现在在同一个文件夹下另一个名为 login.spec.js 的 js 文件中,我想调用 login 这个方法:
var util = require ('util');
require("./myconfig.js");
describe('Login', function() {
var loginPage = require("./login-page.js");
var ptor;
beforeEach (function ()
{
ptor = protractor.getInstance();
ptor.get(settings.winURL);
waits(2000);
//Delete cookies to avoid saving password or username
});
it('should not login : incorrect login details', function()
{
loginPage.login('incorrectusername','incorrectpassword');
expect(loginPage.loginError.getText()).toContain('Access denied');
});
当启动这个代码量角器时,没有在相应的字段中输入用户名和密码,我得到了这个控制台输出:
1) Login should not login : incorrect login details
Message:
TypeError: Object #<Object> has no method 'login'
Stacktrace:
TypeError: Object #<Object> has no method 'login'
at null.<anonymous> (C:\******\login.spec.js:34:20)
这是抛出错误的第 34 行:
loginPage.login('incorrectusername','incorrectpassword');
如何在另一个模块的登录页面功能中使用登录功能?
【问题讨论】:
标签: javascript node.js angularjs protractor