赛普拉斯链接 DOM 元素 - 类型“JQuery<HTMLElement>”上不存在属性“then”

Posted

技术标签:

【中文标题】赛普拉斯链接 DOM 元素 - 类型“JQuery<HTMLElement>”上不存在属性“then”【英文标题】:Cypress chaining DOM elements - property 'then' does not exist on type 'JQuery<HTMLElement>' 【发布时间】:2021-11-05 12:55:21 【问题描述】:

在下面的代码中,第一个“then”工作正常并且表明没有问题,但是 second“then”正在抛出“属性 'then' 在类型 'JQuery' 上不存在 -为什么会发生这种情况,我该如何解决?似乎代码应该可以正常工作

cy.get('.bp3-datepicker').eq(0).then((popup) =>  
    popup.find('.DayPicker').eq(0).then((item) => 
        // <item do stuff>
    )
)

【问题讨论】:

【参考方案1】:

您必须使用wrap() 来生成对象

cy.get('.bp3-datepicker').eq(0).then((popup) =>  
    cy.wrap(popup).find('.DayPicker').eq(0).then((item) => 
        // <item do stuff>
    )
)

或者,你也可以这样做:

cy.get(".bp3-datepicker")
  .eq(0)
  .find(".DayPicker")
  .eq(0)
  .then((item) => 
    // <item do stuff>
  )

【讨论】:

以上是关于赛普拉斯链接 DOM 元素 - 类型“JQuery<HTMLElement>”上不存在属性“then”的主要内容,如果未能解决你的问题,请参考以下文章

如何使用赛普拉斯测试文件输入?

赛普拉斯 - 迭代具有不同值的相同元素?

赛普拉斯:检查元素是不是存在无异常

赛普拉斯在开玩笑断言中导致类型错误

赛普拉斯测试因断言等于 DOM 标题而失败

我应该如何断言在赛普拉斯中选中了该复选框?