如何在Cypress中返回布尔值并解决调用then时报错问题
解决Cypress页面对象中返回布尔值并链式调用的问题
错误原因
你的getElementExists函数没有返回Cypress的命令链,导致调用时拿到的是undefined,自然无法调用.then()方法。
修复步骤
1. 修正页面对象中的函数
给外层的cy.xpath()调用加上return,让函数返回Cypress的链式对象:
getElementExists(xpathSelector){ return cy.xpath(`count(${xpathSelector})`).then(count => { const exist = count > 0; console.log(exist); return cy.wrap(exist); }) }
2. 确认页面对象实例化正确
确保你的basePage是通过类实例化出来的有效对象,比如:
// 假设你的页面对象类名为BasePage const basePage = new BasePage(); basePage.getElementExists(XPath).then((fi) => { console.log(fi); })
3. 可选:简化函数写法
Cypress会自动将.then()中返回的普通值包装为链式对象,所以可以去掉cy.wrap(),代码更简洁:
getElementExists(xpathSelector){ return cy.xpath(`count(${xpathSelector})`).then(count => { const exist = count > 0; console.log(exist); return exist; }) }
内容的提问来源于stack exchange,提问作者Gediminas Kubilius
相关产品推荐
相关产品推荐

