我正在使用量角器来测试Angular JS应用程序。 我想使用页面对象模式,因此我需要将一个函数导出到另一个模块中。如何在Node.js中将此函数导出到另一个模块中
这是我的页面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文件,我想打电话给登录这个方法:
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');
});
当启动该代码量角器不输入用户名和相应的字段passwoed,我得到这个控制台输出中:
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');
如何使用登录functioninside登录页面功能在其他模块?
或者以这种方式导出:exports.LoginPage = new LoginPage(); –
我已经尝试了两种方法,并且都返回了与上面相同的错误! – Ziwdigforbugs
你的模块返回一个函数,但应该返回一个实例。你正试图访问一个函数的方法,这就是问题所在。 –