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
相关产品推荐
相关产品推荐

