← Back to library
Playwrightselectorsbeginnerv1.20+

getByTestId — locate by data-testid

Select elements by a data-testid attribute — immune to text, style, and layout changes.

1test('interacts with elements via data-testid', async ({ page }) => {
2  await page.goto('/profile');
3
4  // data-testid never breaks due to copy or styling changes —
5  // the gold standard for stable selectors in production test suites
6  const avatar = page.getByTestId('user-avatar');
7  await expect(avatar).toBeVisible();
8
9  await page.getByTestId('edit-profile-btn').click();
10  await expect(page.getByTestId('edit-profile-modal')).toBeVisible();
11});
#getByTestId#data-testid#stable selector#test id