TypeError: loginScreen.visibleOfWelcome 不是函数

Posted

技术标签:

【中文标题】TypeError: loginScreen.visibleOfWelcome 不是函数【英文标题】:TypeError: loginScreen.visibleOfWelcome is not a function 【发布时间】:2018-12-23 17:11:38 【问题描述】:

我想访问在 javascript 类中定义的方法。在运行代码时,我收到错误

这是我的代码: firstPage.CCC.js

module.exports = class LoginScreen 

    get welcome() 
      return element(by.id("welcome"));
    


    visibleOfWelcome() 
       expect(this.welcome).toBeVisible();
    

  

firstTest.specs.js

var loginScreen = require("./firstPage.CCC.js");

describe('Example', () => 
  beforeEach(async () => 
    await device.reloadReactNative();
  );

    it('should have welcome screen', async () => 
      await loginScreen.visibleOfWelcome();
    );
  )

如果我写await loginScreen.visibleOfWelcome();,那么我会收到一个错误

如果写await loginScreen.visibleOfWelcome; 那么我的代码工作文件。

知道为什么吗?我想打电话给await loginScreen.visibleOfWelcome();

【问题讨论】:

【参考方案1】:

尝试以下解决方案:

export class LoginScreen 

    get welcome() 
      return element(by.id("welcome"));
    


    visibleOfWelcome() 
       expect(this.welcome).toBeVisible();
    

  

现在你可以这样做了:

var LoginScreen = require("./firstPage.CCC");
var loginScreen= new LoginScreen();

describe('Example', () => 
  beforeEach(async () => 
    await device.reloadReactNative();
  );

    it('should have welcome screen', async () => 
      await loginScreen.visibleOfWelcome();
    );
  )

希望它对你有用。

【讨论】:

谢谢,它现在可以工作了。我在添加这一行后没有添加var loginScreen= new LoginScreen();,它是有效的。谢谢,舒巴姆。 这条线是否有效:expect(this.welcome).toBeVisible();?我认为this.welcome 将是一个函数,expect 可以使用函数还是需要element【参考方案2】:

你还没有实例化类LoginScreen,所以你不能访问它不是像visibleOfWelcome这样的静态成员。您必须在导出之前或导入之后创建类的实例才能访问它的成员(这就是为什么它是 OOP)。

module.exports = new LoginScreen();

// Or

var LoginScreen = require("./firstPage.CCC.js");
var loginScreen = new LoginScreen();

【讨论】:

感谢您解释创建对象的必要性。

以上是关于TypeError: loginScreen.visibleOfWelcome 不是函数的主要内容,如果未能解决你的问题,请参考以下文章

反应本机获取多标记[未处理的承诺拒绝:TypeError:TypeError:未定义不是对象(评估'this.state.markers.map

Django TypeError - TypeError: issubclass() arg 1 必须是一个类

pyspark:TypeError:'float'对象不可迭代

Python 3.8 TypeError: can't concat str to bytes - TypeError: a bytes-like object is required, not 's

TypeError: key 必须是一个字符串,一个缓冲区或一个对象在 typeError 与 GCP 文件存在

TypeError: jQueryxxxxxx 不是函数