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

Cypress页面对象模型中调用类实例的getName()方法返回undefined求助

Cypress POM方法返回undefined问题排查修复

核心问题点

  • 类定义语法错误:JS类声明关键字为小写class,类属性声明不需要加const关键字,调用内部属性需加this.前缀
  • getName方法无返回值:函数内部未return任何内容,JS默认返回undefined;且Cypress命令是异步链式结构,必须return整条命令链才能对外传递结果
  • 方法调用拼写错误:测试用例中将方法名getName误写为get.Name,无法匹配到定义的方法
  • 异步调用逻辑错误:Cypress命令异步执行,不能同步调用直接拿返回值,需通过.then()链式接收异步结果

修复后代码

页面对象类代码

class MHome {
  // 类属性无需加const
  loc = 'locator-A'
  loc1 = 'locator-B'
  getName() { 
    // 返回整条Cypress命令链
    return cy.getTeam2Home(this.loc, this.loc1).then((value) => {
      const res = value.toString()
      // 调试可打开log
      // cy.log(res)
      return res
    })
  }
}

测试用例代码

const Sh = new MHome();
And("verify title of elements", function (){
  // 链式调用接收异步返回结果
  Sh.getName().then(name => {
    cy.log(name)
  })
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 10:12:00