javascript - Protractor 页面对象 - TypeError : Object #<Object> has no method 'methodName'

标签 javascript angularjs protractor pageobjects

我正在尝试使用页面对象模式编写一个简单的测试 - 基于 ' 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/

相关文章:

AngularJS 与 Sencha Touch

javascript - 是否有 'angular.element($0).scope()' 的 Angular 2 等价物

javascript - While 循环导致异步问题

javascript - Protractor、Jasmine 和在第一次失败时停止测试

javascript - 将 promise 传递给 Angular-UI 状态 Controller

javascript - Protractor more than one element found for locator By(css selector, .image-holder) - 第一个结果将被使用

javascript - 为什么我们使用console.table方法?

javascript - 谷歌驱动器: Get (root) file and folders with javascript api (get only deleted files on drive)

Javascript 函数适用于 FF 和 Chrome,但不适用于比尔叔叔的浏览器

javascript - "this.setState is not a function"在嵌套的 addEventListener 函数中使用 setState 时