如何解决Cypress运行时报错"TypeError: cyBySel is not function"
报错原因
getBySel不属于Cypress内置的全局API,是前端自动化测试领域通用的自定义封装命令,你没有在项目中完成该命令的注册逻辑,调用未定义的方法就会抛出此错误。
解决方案
- 第一步:添加自定义命令注册逻辑
在项目的cypress/support/commands.js文件中添加如下代码:
Cypress.Commands.add('getBySel', (selector, options) => { // 默认匹配元素的data-testid属性,你也可以根据自身业务规则改成data-cy等其他自定义属性 return cy.get(`[data-testid="${selector}"]`, options) })
- 第二步:确认命令导入配置
检查cypress/support/e2e.js(Cypress 10以下版本对应cypress/support/index.js)文件中是否存在导入commands的代码,没有的话手动添加:
import './commands'
- 第三步:校验元素属性和代码拼写
- 确认页面中对应按钮元素都添加了匹配的
data-testid属性,比如关于我们按钮的属性要写为data-testid="aboutusButton",属性值和你调用getBySel时传入的参数完全一致 - 你现有测试代码最后一行存在语法错误,
cy.contains('Terms of Service').click缺少调用括号,要修改为cy.contains('Terms of Service').click()才能正常触发点击操作
内容的提问来源于stack exchange,提问作者Mh Ea
相关产品推荐
相关产品推荐

