Demo
team invite button still uses old accessible name
tests/e2e/settings/team-invite.spec.ts
failed
1m 14s
chromium
Diagnosis
See the failing step first, then validate the likely cause with the trace and artifacts.
Failure summary
LocatorError
High confidence
getByRole('button', { name: 'Invite teammate' }) no longer matches the rendered control.
This is where Sentinel's suggested-fix story should feel magical: the failure is precise, the UI changed, and the patch is reviewable.
Parsed failure signal
LocatorError: getByRole('button', { name: 'Invite teammate' }) no longer matches the rendered control.
Evidence
- The test expectation is tied to a locator whose label no longer matches the rendered control.
- The screenshot confirms the control is present but named differently.
- The failure is better explained by UI drift than by network or timing instability.
What to check next
- Compare the current accessible name in the UI with the locator in code.
- Validate whether the rename was intentional product work.
- Update the selector only if the new label is the real contract.
Suggested fix
Update the locator to the current accessible name shown in the product.
await page.getByRole('button', { name: 'Send invite' }).click();Loading failing step…
Evidence
Open the same artifacts a developer would inspect in a real failing run.
Evidence workspace
Best first click for step timing and action flow.
Scripted demo
Trace timeline
11:07:44 Open team settings 11:07:46 Open invite dialog 11:07:47 Query role=button name='Invite teammate' 11:07:52 Timeout after 5000ms 11:07:52 Visible button text: 'Send invite'
Start with trace
Trace confirms the action never found a clickable target with the expected label.
Screenshot and logs
The screenshot should reveal the renamed control immediately.
Logs are usually low signal for selector drift unless a helper generated the wrong locator.
Advanced analysis
This is where the product proves it is more than an artifact viewer.
Failure intelligence
Computing failure intelligence…