我通过使用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');
});
这对我来说很完美,