请问如何获取 Playwright E2E 测试库中复选框元素的状态。
jsHandle.evaluate()
:
const checkbox = await page.$('[type=checkbox]');
const checkboxState = await checkbox.evaluate(node => node.checked);
page.$eval()
:
const checkboxState = await page.$eval('[type=checkbox]', node => node.checked);
page.evaluate()
:
const checkboxState = await page.evaluate(() => {
const checkbox = document.querySelector('[type=checkbox]');
return checkbox.checked;
});
如果你有更多,也可以一次性完成:
const checkboxStates = await page.evaluate(() => {
const checkboxes = document.querySelectorAll('[type=checkbox]');
return [...checkboxes].map(c => c.checked);
});
根据剧作家文档,
如果您需要断言复选框已选中,请首选 expect(locator).toBeChecked() 以避免不稳定。
所以:
const locator = page.getByLabel('Subscribe to newsletter');
await expect(locator).toBeChecked();
const checked = await page.getByRole('checkbox').isChecked();