我正在尝试使用页面对象模式编写一个简单的测试 - 基于 ' docs/page-objects '.
我创建了一个描述页面对象的文件,并使用此页面对象来测试页面。
//page object
var LoginPage = function() {
this.userInput = browser.driver.findElement(by.id('username'));
this.pwdInput = browser.driver.findElement(by.id('password'));
this.btnEnter = browser.driver.findElement(by.id('btnLogin'));
this.get = function(){
browser.get('http://example.com');
};
this.setUser = function (user){
this.userInput.sendKeys(user);
};
this.setPasswd = function (password) {
this.pwdInput.sendKeys(password);
};
this.clickBtnEnter = function (){
btnEnter.click();
};};
规范文件:
var loginPage = require('./LoginPage.js');
describe('myApp', function() {
it('should save contract config', function (){
loginPage.get();
loginPage.setUser('userid');
loginPage.setPasswd('passwd');
loginPage.clickBtnEnter();
});
});
当我运行此测试时,显示以下错误:TypeError: Object # has no method 'get' - 在这一行:loginPage.get();。
当我搜索这个问题时,我发现了在Protractor中使用页面对象的各种方法,例如Astrolable 。 现在我不确定页面对象的正确用法。
您对如何修复此测试有什么想法吗?
谢谢大家。
最佳答案
试试这个:
确保您的 LoginPage.js
文件中有以下内容
module.exports = LoginPage;
添加缺少的new
关键字
var LoginPage = require('./LoginPage.js');
var loginPage = new LoginPage();
关于javascript - Protractor 页面对象 - TypeError : Object #<Object> has no method 'methodName' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25518874/