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

标签 javascript angular cypress

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

我尝试使用 .contains() 和 .find() 等 cypress 命令,它们似乎没有返回通过/失败响应。我还尝试了各种 if 语句,但是当我使用这些语句时,我最终使用的 cypress 命令要么通过,要么失败,但不会路由到任何备用条件 else。

//点击提交成功或测试失败。如果不是最后一页,则永远不要点击 else 子句。

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

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

最佳答案

这应该是您正在寻找的条件:

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重复。

关于javascript - 如何编写条件来检查页面链接/按钮是否对 click() 可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57631796/

相关文章:

javascript - Rails update.js.erb 不执行 javascript

javascript - 复制 UI-Bootstrap 代码不起作用?如何使用 UI-Bootstrap?

javascript - 从 Angular 4 将数据发布到 Firebase

typescript - 使用 Cypress 选择不包含文本的 cypress 元素

cypress - 根据 Cypress 请求设置 cookie 并返回用户

javascript - 严格验证文本字段

javascript - Rally App SDK 2.0 : Ext. 元素方法 "unselectable"未标准化

Angular - 选择下拉列表为空

typescript - 使用 angular2 rc4 将所有无效 url 重定向到特定组件

使用 Cypress 和 Gatsby 测试该页面不是 404 页面