如何编写条件来检查页面链接/按钮是否对click()可见

时间:2019-08-23 19:09:27

标签: javascript angular cypress

我正在随机的测验页面上编写赛普拉斯测试。我正在尝试在赛普拉斯中编写一个条件,如果它不是最后一页,则允许我单击“提交”页面链接,如果不是最后一页,它将单击“下一步”链接。

我尝试使用cypress命令,例如.contains()和.find(),它们似乎不会返回通过/失败响应。我也尝试了各种if语句,但是当我使用这些语句时,最终会使用cypress命令,这些命令可以通过或失败,但是不会路由到任何其他条件语句。

//单击成功提交或未通过测试。如果不是最后一页,切勿点击else子句。

        if (cy.find("button[data-cy=submitBtn]").length > 0) 
        {
            // SUBMIT button exists
            cy.get('[data-cy=submitBtn]')
                .click()
        }

如果满足条件,则预期结果将达到else并触发命令。

1 个答案:

答案 0 :(得分:1)

这应该是您要寻找的条件:

cy.get("body").then($body => {
  if ($body.find("button[data-cy=submitBtn]").length > 0) {   //evaluates as true
     cy.get("button[data-cy=submitBtn]")
     .click();
  }
});

我相信您的问题可能与this one重复