← 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