从量角器中的pageobject获取元素

时间:2017-04-05 14:30:23

标签: javascript protractor pageobjects

我正在使用页面对象编写一些Protractor测试用例。但是我无法直接从Pageobject文件中使用元素,在spec文件中。

可能我错过了一些JS的细微差别,因为我没有在JS中写过这么多。

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

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

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

将在我的spec文件中使用,如下所示:

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

1 个答案:

答案 0 :(得分:1)

你缺少的东西,

  

使用此关键字

将您的变量绑定到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');

    });

这对我来说很完美,