如何在Playwright中的一行中进行多个断言?

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

在 Cypress 中这很容易,因为我可以使用 .and 并且我可以链接 2 个断言:

    checkFields(){
  this.heading().should('be.visible').and('contain.text', 'test')
    }

但是在 Playwright 中我收到错误:“‘Promise’类型上不存在属性‘toContainText’”

async checkFields(){
  await expect(this.heading).toBeVisible().toContainText('test')
    }

如何在不使用第二行的情况下以与 Cypress 相同的方式进行断言。

playwright
1个回答
0
投票

剧作家没有连锁断言。您只需要使用尽可能多的断言即可。

checkFields(){
  await expect(heading).toBeVisible();
  await expect(heading).toHaveText("test");
}

如果您想同时验证两者,即使其中一个可能失败 - 请使用

expect.soft
https://playwright.dev/docs/test-assertions#soft-assertions

checkFields(){
  // Make a few checks that will not stop the test when failed...
  await expect.soft(heading).toBeVisible();
  await expect.soft(heading).toHaveText("test");

  // Avoid running further if there were soft assertion failures.
  expect(test.info().errors).toHaveLength(0);
}
© www.soinside.com 2019 - 2024. All rights reserved.