cypress:条件测试期间出错

问题描述 投票:0回答:2

嘿伙计们:)我正在尝试在 cypress 中进行条件测试

cy.get("body").then(($body) => {
    if ($body.find("element1").length > 0,  {timeout: 10000}) {
        cy.get("element1").should("be.visible")
    } else {         
        cy.get("element2").should('be.visible').within(() => {
            //do this and that
        })
    }
});

但这里的问题是,如果找不到 element1,测试将无法继续。我尝试了不同的方法,但没有一个有效。第一部分或第二部分都有效,但两者都不起作用。你能告诉我可能出了什么问题吗?提前非常感谢,多年来一直在努力解决这个问题,现在解决这个问题是一种荣誉:D

javascript if-statement conditional-statements cypress
2个回答
0
投票

$body.find("element1").length > 0,  {timeout: 10000}
的返回值是异步的,而不是布尔值,并且将计算为true,因此您将始终处于if条件中:

cy.get("element1").should("be.visible")

0
投票

代码本质上是正确的,只是该表达式没有超时。

cy.get("body").then(($body) => {
  if ($body.find("element1").length > 0) {
    cy.get("element1").should("be.visible")
  } else {         
    cy.get("element2").should('be.visible').within(() => {

    })
  }
})
© www.soinside.com 2019 - 2024. All rights reserved.