0

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

TypeError: loginScreen.visibleOfWelcome 不是函数

这是我的代码: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();,那么我会收到一个错误

TypeError: loginScreen.visibleOfWelcome 不是函数

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

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

4

2 回答 2

2

尝试以下解决方案:

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();
    });
  })

希望它对你有用。

于 2018-07-16T08:11:56.157 回答
1

您尚未实例化该类LoginScreen,因此您无法访问它的非静态成员,例如visibleOfWelcome. 您必须在导出之前或导入之后创建该类的实例才能访问它的成员(这几乎是 OOP 的原因)。

module.exports = new LoginScreen();

// Or

var LoginScreen = require("./firstPage.CCC.js");
var loginScreen = new LoginScreen();
于 2018-07-16T08:00:12.227 回答