← Back to library
Playwrightassertionsbeginnerv1.20+

Assert current URL

Assert the browser URL after navigation, form submission, or redirect using toHaveURL().

1test('URL is correct after navigation and form submission', async ({ page }) => {
2  await page.goto('/login');
3
4  await page.getByLabel('Email').fill('user@test.com');
5  await page.getByLabel('Password').fill('secret');
6  await page.getByRole('button', { name: 'Sign in' }).click();
7
8  // toHaveURL() retries — handles async redirects from client-side routers
9  await expect(page).toHaveURL('/dashboard');
10
11  // Regex — use for dynamic segments like /users/123 or query strings
12  await expect(page).toHaveURL(/\/dashboard/);
13
14  await page.getByRole('link', { name: 'Settings' }).click();
15  await expect(page).toHaveURL(/\/settings/);
16});
#toHaveURL#URL#navigation#redirect#assert