量角器页面对象 - 未调用方法

时间:2015-02-10 23:10:26

标签: javascript angularjs testing protractor end-to-end

我正在使用paject对象学习量角器。这是我的Page对象文件和我的测试规范。文件:

页面对象(文件名PO_Login.js)

var ptor;
var LoginPage = function () 
{
        ptor = protractor.getInstance();
        this.login = function()
        {
            console.log("here");        
            var user=ptor.findElement(protractor.By.id("username"));
            user.sendKeys('admin');
            var pwd=ptor.findElement(protractor.By.id('password'));
            pwd.sendKeys('admin');
        }
}
module.exports = new LoginPage();

我的测试规范文件

var ptor;
describe(
    'homepage', 
    function() 
    {
        var LoginPage = require('./LoginPO.js');
        beforeEach(
            function() 
            {
                ptor = protractor.getInstance();
                var driver=ptor.driver;
                ptor.driver.get('http://localhost/xxxxxxxxxx/login');
                ptor.waitForAngular();
            }
        );

        it(
            'xxxx',
            function()
            {
                ptor = protractor.getInstance();
                ptor.driver.findElement(protractor.By.tagName('html'))
                    .getAttribute('ng-app').then(function(text)
                        {
                            expect(text).toBe('xxxxxxx.sso')
                        }
                    );

                ptor.driver.findElement(
                protractor.By.tagName('body')).getAttribute('id')
                    .then(function(text)
                        {
                            expect(text).toBe('cas')
                        }
                    );
            },
            10000
        );

        it(
            'login', 
            function() 
            {       
                console.log("here...");
                LoginPage.login;
                //  var ctrlpoints_url=ptor.getCurrentUrl();
                //  expect(ctrlpoints_url).toContain('http://localhost/xxxxxxxxxxxxxxx/#/dashboard/points');
                //  expect(loginPage.header.getText()).toEqual('xxxxxx');     
             }
        );    
    }
);

我不确定是什么问题 - 在Page对象中定义的登录方法没有被调用。我使用console.log()来调试脚本。

1 个答案:

答案 0 :(得分:1)

未调用login函数。替换:

LoginPage.login;

使用:

LoginPage.login();

除此之外,请使用ptorprotractorbrowser,而不是使用elementby全局定义的对象,请参阅示例{{3} - 至少会使你的代码更清晰。