我通过使用pageobject编写了一些Protractor测试用例。但是,在规范文件中直接使用Pageobject文件中的元素时遇到麻烦。

可能我错过了一些JS细微差别,因为我还没有用JS编写太多代码。

我想使用在Pageobject中定义的一些元素,如下所示:

    var PageObject = function()
    {
    var loginUsername = element(by.id('loginusername'));

    //other methods
    };
    module.exports = PageObject;


可以在我的规格文件中使用,如下所示:

var PageObject = require('./pageObject.page.js');



describe( ' Login page ', function(){
    it('type something in the usernamefield', function(){
        var pageObject = new PageObject();
        pageObject.get();

        pageObject.loginUsername.sendKeys('Test');

    });
});


使用方法(例如get和其他方法)可以很好地工作,但是使用元素直接导致一些未定义的错误。

我试图从类似的东西复制,应该在哪里工作。

https://ramonvictor.github.io/protractor/slides/#/33

最佳答案

你缺少的东西


  使用此关键字将变量绑定到pageObject.page.js中的对象


var PageObject = function()
    {
       this.loginUsername = element(by.id('loginusername'));
       ......
    };
module.exports = PageObject;



  首先在Spec中获取真实的应用程序并进行实际的工作


it('type something in the usernamefield', function(){
        browser.get('"https://....');
        var pageObject = new PageObject();
        pageObject.loginUsername.sendKeys('Test');

    });


这对我来说很完美,

07-26 05:36