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