如何期望计数大于或小于?

Tal*_*gel 3 python playwright playwright-python

使用PlaywrightPython,我如何期望计数大于或小于?

例如,此代码期望计数为 2。

如何实现计数 >= 2 (仅更大)

expect(self.page.locator('MyLocator')).to_have_count(2, timeout=20 * 1000)
Run Code Online (Sandbox Code Playgroud)

小智 6

Playwright 没有在 toHaveCount/to_have_count 中使用更大/更小的选项。

我想你可以轻松地将其重写为Python。

const count = await page.locator("MyLocator").count();
expect(count).toBeGreaterThan(2);
expect(count).toBeLessThanOrEqual(2);
Run Code Online (Sandbox Code Playgroud)

这种方法的唯一限制是您不会期望重试功能,因为您检查的是 int 值,而不是定位器。因此,您可能想首先检查定位器的可见性。

const locator = page.locator("MyLocator");
await expect(locator.last()).toBeVisible(); // or first()
const count = await locator.count();
expect(count).toBeGreaterThan(2);
expect(count).toBeLessThanOrEqual(2);
Run Code Online (Sandbox Code Playgroud)

另外,PW for NodeJS 能够创建自定义匹配,但我不确定它是否是 Python 的一个选项。