在 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 相同的方式进行断言。
剧作家没有连锁断言。您只需要使用尽可能多的断言即可。
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);
}