You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cypress自定义carPage类调用getModel报属性不存在错误该如何解决

报错原因
  • 你定义的getModel、get都是carPage类的实例成员,仅类的实例对象可访问。你当前直接将类作为默认导出,导入后直接调用类本身的getModel方法,该方法不存在于类的构造函数对象上,因此抛出类型错误。
  • 静态成员直接挂载在类本身,无需实例化即可通过类直接调用,因此你将方法改为静态方法后可正常运行。
额外注意点

你当前封装的选择器存在语法错误:cy.get(cy-data-${key})是匹配标签名为cy-data-xxx的元素,若要匹配带cy-data-xxx属性的元素,需要改为属性选择器格式:

cy.get(`[cy-data-${key}]`)
两种可行方案

方案1:保持实例成员,导出类的实例

修改carPage类的导出逻辑,直接导出实例化后的对象,导入后即可直接调用方法:

// ../../helpers/carPage 代码
class carPage {
  model = 'model'
  getModel = () => this.get(this.model)
  get = (key) => cy.get(`[cy-data-${key}]`); 
}
// 导出实例而非类本身
export default new carPage()

测试用例无需修改即可正常运行。

方案2:全部改为静态成员

将类的所有属性、方法都改为静态成员,无需实例化即可直接通过类调用:

// ../../helpers/carPage 代码
class carPage {
  static model = 'model'
  static getModel = () => this.get(this.model)
  static get = (key) => cy.get(`[cy-data-${key}]`); 
}
export default carPage

测试用例无需修改即可正常运行。

内容的提问来源于stack exchange,提问作者user16040441

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 23:36:03