从量角器中的页面对象获取元素

Getting element from pageobject in protractor

我正在使用页面对象编写一些 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

你缺少的东西,

bind your variable to object in pageObject.page.js, using this keyword

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

In Spec first get the real application and do real work

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

    });

这对我来说很完美,