Reputation: 2295
Please, how to get the status a checkbox element in the Playwright E2E test library.
Upvotes: 3
Views: 7167
Reputation: 2072
According to Playwright Docs,
If you need to assert that checkbox is checked, prefer expect(locator).toBeChecked() to avoid flakiness.
So:
const locator = page.getByLabel('Subscribe to newsletter');
await expect(locator).toBeChecked();
const checked = await page.getByRole('checkbox').isChecked();
locator.isChecked() Docs
Upvotes: 2
Reputation: 3134
page.isChecked()
Please check the document:
https://playwright.dev/docs/api/class-page#page-is-checked
Upvotes: 0
Reputation: 8352
You can use jsHandle.evaluate()
:
const checkbox = await page.$('[type=checkbox]');
const checkboxState = await checkbox.evaluate(node => node.checked);
or page.$eval()
:
const checkboxState = await page.$eval('[type=checkbox]', node => node.checked);
or page.evaluate()
:
const checkboxState = await page.evaluate(() => {
const checkbox = document.querySelector('[type=checkbox]');
return checkbox.checked;
});
If you have more of them, you can do it in one go as well:
const checkboxStates = await page.evaluate(() => {
const checkboxes = document.querySelectorAll('[type=checkbox]');
return [...checkboxes].map(c => c.checked);
});
Upvotes: 0