javascript - 尝试将其用作静态方法时未定义方法

标签 javascript protractor

我正在尝试使用静态方法以便在外部使用它。

实用程序文件:

'use strict'
function utils(){}
utils.staticMethod1 = function(){
alert("foo");
};
module.exports =  utils();
主文件:

'use strict;'
     let HomePage = require('../page/home_page.js');
let utilsPage = require('../utils/utils.js');
    describe("login to website",function(){
         let employeeId;
         let employeeBday;
         let home = new HomePage();
         
      beforeEach(function(){
           
            browser.driver.get("http://foo.com/");     
        });
       
            it("should succees picking a present",function(){
                utilsPage.staticMethod1();
        });
    });

但我不断收到错误消息:失败:utils 未定义

最佳答案

您的页面文件:

'use strict';

var Utils = function(){
   this.methodTest = function(){
      console.log("Something"); //alert(this);
   };
};

module.exports = Utils;

您的规范文件:

'use strict;'

let Utils = require('../page/utils.Page.js');

describe("login to website",function(){
     let employeeId;
     let employeeBday;
     let utils = new Utils();

     beforeEach(function(){ 
         browser.driver.get("http://foo.com/");     
     });

     it("should success picking a present",function(){
         utils.methodTest();
         expect(browser.getTitle()).toEqual('SomethingToGetAnError');
     });

});

您应该了解一下在 Protractor 中使用静态方法的信息,它们会导致您陷入困境。

Explanation

Better explanation about Page Objects Pattern in testing

关于javascript - 尝试将其用作静态方法时未定义方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45164527/

相关文章:

javascript - 视频Js动态加载源

javascript - 事件的动态网格菜单

javascript - grid.onDeleteRow() 函数无法运行/触发

javascript - Facebook - 如何获取个人资料图片

javascript - Protractor AngularJS 等待元素显示并执行一些操作

javascript - 防止表单提交并稍后在异步提交 jQuery 函数中手动提交

javascript - Protractor 从命令提示符将浏览器名称传递给 conf.js

javascript - Protractor 很难点击弹出/下拉菜单

javascript - Protractor 等待多个对象

angularjs - Protractor 测试(在 Angular 站点上使用 Selenium 和 Chrome)给出错误的 x 和 y 点