求助:TypeError: Cannot read property 'keyPad' of undefined错误排查
问题分析与解决
错误原因
你遇到的TypeError: Cannot read property 'keyPad' of undefined是变量名大小写不匹配导致的:
- 在
BasePage类中,定义的属性是numberKeyPad(注意K为大写) - 但在
logout类的logoutProcess方法里,调用的是this.numberKeypad(k为小写)
由于JS/TS是大小写敏感语言,this.numberKeypad会被识别为未定义的属性,因此无法读取其keyPad子属性。
修复方法
将logoutProcess方法里的变量名修正为和父类一致的numberKeyPad即可:
修改后的logout类代码:
class logout extends BasePage { constructor() { super(); this.inputField = Selector('.form-input-field'); } async logoutProcess() { // 修正变量名大小写 await t.click(this.inputField).expect(this.numberKeyPad.keyPad.visible).ok({ timeout: 2000 }); await this.numberKeyPad.type('100'); ... } }
额外验证点
修复变量名问题后,可额外确认NumberKeypadModel中的keyPad选择器是否能正确匹配页面元素,但当前报错的直接触发原因是变量名大小写不匹配,优先修复该问题即可。
内容的提问来源于stack exchange,提问作者BruceyBandit
相关产品推荐
相关产品推荐

