Tomas Randus
Tomas Randus

Reputation: 2295

Playwright test library - checkbox state

Please, how to get the status a checkbox element in the Playwright E2E test library.

Upvotes: 3

Views: 7167

Answers (3)

I.sh.
I.sh.

Reputation: 2072

According to Playwright Docs,

If you need to assert that checkbox is checked, prefer expect(locator).toBeChecked() to avoid flakiness.

So:

Assert checkbox state

const locator = page.getByLabel('Subscribe to newsletter');
await expect(locator).toBeChecked();

Get checkbox state

const checked = await page.getByRole('checkbox').isChecked();

locator.isChecked() Docs

Upvotes: 2

echo
echo

Reputation: 3134

page.isChecked()

Please check the document:

https://playwright.dev/docs/api/class-page#page-is-checked

Upvotes: 0

pavelsaman
pavelsaman

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

Related Questions