希望有人能理解这一点 我已创建用于搜索数据ID的命令

Cypress.Commands.add('getByDataQAId', (selector, ...args) => {
    return cy.get(`[data-qa-id=${selector}]`, ...args)
})

Cypress.Commands.add('findByDataQAId', (selector, ...args) => {
    return cy.find(`[data-qa-id=${selector}]`, ...args)
})

我现在正在使用这些来搜索屏幕上的元素,由于屏幕的布局方式以及开发人员如何创建id,我需要一起使用这些

cy.getByDataQAId('card-detail').filter(':visible').findByDataQAId('sub-title'),

当调用此丝柏时,查找部分失败,称"收到的主题"未定义""

当在下面调用这个时(对我来说是一样的)

cy.get('[data-qa-id="card-detail"]').filter(':visible').find('[data-qa-id="sub-title"]')

这可以正确地找到该字段.所以现在我很困惑为什么第一个失败,而第二个通过.

谢谢你的时间

推荐答案

我认为Nak几乎是对的,但您还需要将自定义命令指定为子命令.

这由选项{prevSubject:true}指示.

Cypress.Commands.add('findByDataQAId', {prevSubject:true}, (subject, selector, ...args) => {
  return cy.wrap(subject).find(`[data-qa-id=${selector}]`, ...args)
})

有子命令here的示例.

收件箱主体接受以下值:

  • false:(默认)101:(父命令)
  • true:接收上一个主题:(子命令)
  • optional:可以启动链,或使用现有链:(双重命令)

Javascript相关问答推荐

如何通过onClick为一组按钮分配功能;

在分区内迭代分区

如何在RTK上设置轮询,每24小时

react—router v6:路由没有路径

Spring boot JSON解析错误:意外字符错误

在react js中使用react—router—dom中的Link组件,分配的右侧不能被 destruct ''

MathJax可以导入本地HTML文档使用的JS文件吗?

如何从调整大小/zoom 的SVG路径定义新的d属性?""

如何在每次单击按钮时重新加载HighChart/设置HighChart动画?

查询参数未在我的Next.js应用路由接口中定义

未捕获的运行时错误:调度程序为空

如何用javascript更改元素的宽度和高度?

使用RxJS from Event和@ViewChild vs KeyUp事件和RxJS主题更改输入字段值

将相关数据组合到两个不同的数组中

背景动画让网站摇摇欲坠

输入的值的类型脚本array.排序()

如何让SVG图标在被点击和访问后改变 colored颜色 ,并在被访问后取消点击时恢复到原来的 colored颜色 ?

TabNavigator和StackNavigator之间的Reaction Native中的导航问题

如何在Reaction中设置缺省值, Select 下拉列表,动态追加剩余值?

如何在Firebase中读取对象的特定字段?