Twee overeenkomsten vragen een productkeuze.
Beperk de herhaalde knop tot het bedoelde record voordat de klik slaagt.

Vertaalde editie. Technische identificatiegegevens blijven in hun oorspronkelijke vorm.

Een instellingenpagina heeft twee Apply-knoppen: wekelijkse updates en beveiligingsmeldingen. Een gegenereerde test krijgt een strictness-fout. first() laat de klik werken, maar de documentvolgorde kiest nu de gewijzigde instelling. De test heeft het bedoelde record nodig.
De locatorhandleiding vereist één doel voor bewerkingen op een element. Meerdere overeenkomsten maken klikken dubbelzinnig. count() mag meerdere elementen tellen. Twee tellen en niet kunnen klikken zijn dus verenigbaar.
Bekijk beide overeenkomsten
Lees knoppen met hun koppen, labels en records. Herhaling in verschillende kaarten kan juist zijn; een toevallig duplicaat binnen één kaart kan een fout zijn. Controleer de producteis voordat u de selector wijzigt.
Ons verzonnen voorbeeld heeft twee benoemde gebieden met Apply en een lokale status. Geen server, echt account of opgeslagen instelling. We controleren het gewijzigde gebied en de ongewijzigde buur.
const weekly = page.getByRole('region', { name: 'Weekly updates' });
const apply = weekly.getByRole('button', { name: 'Apply', exact: true });
await expect(apply).toHaveCount(1);
await apply.click();
await expect(weekly.getByRole('status')).toHaveText('Applied');De code vereist de Playwright-testrunner en geïmporteerde expect. De fixture levert gebiedsnaam en klikhandler. De status bewijst een lokaal interface-effect, geen opslag of bezorging.
Geef de afbakening een reden
Kies de ouder vanuit het bedoelde record. Hier werkt de toegankelijke gebiedsnaam. Een andere interface kan een gefilterde rij of afgesproken test-ID nodig hebben. Controleer de identiteit na sorteren of invoegen.
Exacte tekst onderscheidt geen identieke knoppen binnen hetzelfde gebied. De aantalscontrole toont een onjuiste aanname van uniciteit vóór de actie. Controleer ook het globale aantal als de herhaalde structuur bij de eis hoort.
Een locator wordt bij gebruik opgelost. De pagina kan tussen waarnemingen veranderen; tellen vergrendelt geen DOM-knoop. Playwright past nog steeds zijn eigen klikcontroles toe. Een voorafgaand aantal garandeert geen onveranderde pagina.
Positie vereist een volgordecontract
first(), last() en nth() kunnen na veranderingen een ander element kiezen. Een positie is passend bij een expliciete volgorde-eis, zoals het eerste gerangschikte resultaat. Controleer volgorde en identiteit. Een verdwenen fout is onvoldoende reden.
De lokale test bevestigt twee overeenkomsten, vangt de strikte klikfout op en controleert ongewijzigde statussen. Daarna klikt hij binnen Weekly updates en controleert beveiliging ongewijzigd. Dit test die grens, niet elke strictness-oorzaak.
Noteer component, stabiele identiteit en verwachte wijziging. AnyTest beschrijft appverkenning en tests voor menselijke review. Beoordeel herhaalde controls tegen het bedoelde record. Geen specifiek AnyTest-selectiealgoritme wordt beweerd.
Veelgestelde vragen
Onderscheidt exacte tekst identieke labels?
Nee. Beperk ook het gebied of record.
Is first() altijd fout?
Nee. Het vereist een expliciete volgorde en gecontroleerde identiteit.