typescript Cypress测试-使用If逻辑查找空缺中的“立即申请”以测试“立即申请”工作流程

ogq8wdun  于 2023-02-05  发布在  TypeScript
关注(0)|答案(1)|浏览(130)
    • 背景:**

有时,用户已经申请了该职位,此时"立即申请"按钮将不可见,而是显示一条成功消息,告诉他们已经申请。

    • 使用案例:**

我想通过一个工作板上的列表Map,直到我看到一个工作列表与"立即申请"的逻辑,因为我需要测试登录用户的流。
当点击第一个"立即申请"时,我想停止寻找用户可以申请的其他职位列表。
我相信这需要一些if/else逻辑,但是我不确定如何使用Cypress talking unfavourably about it来实现这一点。

    • 代码:**
describe("Candidate Applications", () => {
  // 1. Login as a candidate
  beforeEach(() => cy.loginByCognito(Cypress.env("candidate_username"), Cypress.env("candidate_password")));

  it("passes", () => {
    // 2. Go to the first job listing
    cy.visit(TEACHING_JOBS);
    const arrayOfListings = [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15];

    for (let i = 0; i < arrayOfListings.length; i++) {
      cy.get(`[datacy="displayTitle"] `).eq(i).click();
      cy.wait(2000);

      // If the applicationTop does not contain "Apply Now", use cy.go("back") to go back to the previous page

      cy.get("body").then(body => {
        if (body.find('[datacy="applyNow"]').length > 0) {
            // 3. Apply to the vacancy
            cy.get(`[datacy="applyNow"]`).first().click();
            ...

            break;

        } else {
          cy.go("back");
        }
      });
    }
   });
});
    • 错误:**

1.所有文本都带有黄色下划线,错误为Function declared in a loop contains unsafe references to variable(s) 'cy', 'cy', 'cy', 'cy', 'cy', 'cy', 'cy', 'cy', 'cy'.
1.添加break引入错误Jump target cannot cross function boundary,Cypress GUI显示Module parse failed: Unsyntactic break (37:20)

btqmn9zl

btqmn9zl1#

不要执行const arrayOfListings = [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15];来驱动for循环。
请改用正确的Cypress命令

cy.get('[datacy="displayTitle"]').each(($el, i) => {
  $el.click()
  ...
})

这应该,如果不是解决推动你前进。

相关问题