← Back to library
Playwrightassertionsintermediatev1.20+

Assert input is disabled or enabled

Check whether a button or input is in a disabled or enabled state — common for form validation flows.

1test('submit button reflects form validity state', async ({ page }) => {
2  await page.goto('/register');
3
4  const submitBtn = page.getByRole('button', { name: 'Create account' });
5
6  // toBeDisabled() retries — safe to call right after navigation
7  await expect(submitBtn).toBeDisabled();
8
9  await page.getByLabel('Email').fill('qa@example.com');
10  await page.getByLabel('Password').fill('Str0ng!Pass');
11
12  // Form is now valid — button should become interactive
13  await expect(submitBtn).toBeEnabled();
14
15  // Also works on inputs — e.g. assert a field is read-only after lock
16  const emailField = page.getByLabel('Email');
17  await expect(emailField).not.toBeDisabled();
18});
#toBeDisabled#toBeEnabled#disabled#form validation