QA The Other WayQualitätssicherung im Zeitalter der KI-Automatisierung. QA The Other Way.
Praktisches QA

Zwei Treffer brauchen eine Produktentscheidung.

Grenzen Sie ein wiederholtes Steuerelement auf den gemeinten Datensatz ein.

5 Minuten LesezeitQA The Other Way
Zwei Apply-Schaltflächen, eine im Bereich für wöchentliche Updates.
Eigene redaktionelle Illustration.
Illustratives Video zu diesem Artikel. Englischer Bildschirmtext; Wählen Sie Untertitel für diese Sprache aus.

Übersetzte Ausgabe. Technische Kennungen bleiben in ihrer ursprünglichen Form.

Grenzen Sie ein wiederholtes Steuerelement auf den gemeinten Datensatz ein.
Lokales Beispiel mit erfundenen Daten, keine Kunden- oder Anbieteroberfläche.

Eine Einstellungsseite hat zwei Apply-Schaltflächen: für wöchentliche Updates und Sicherheitshinweise. Ein generierter Test erhält einen Strictness-Fehler. first() lässt den Klick laufen, aber die Dokumentreihenfolge wählt nun die geänderte Einstellung. Der Test braucht den gemeinten Datensatz.

Der Locator-Leitfaden beschreibt strikte Operationen auf einem einzelnen Element. Mehrere Treffer machen einen Klick mehrdeutig. Operationen für mehrere Elemente wie count() erlauben mehrere Treffer. Zwei Treffer und ein fehlgeschlagener Klick widersprechen sich daher nicht.

Beide Treffer prüfen

Lesen Sie Beschriftungen mit ihren Überschriften und Datensätzen. Wiederholungen in getrennten Karten können richtig sein; ein versehentliches Duplikat in derselben Karte kann ein Fehler sein. Prüfen Sie die Produktanforderung vor einer Selektoränderung.

Unser erfundenes Beispiel enthält zwei benannte Bereiche mit Apply und lokalem Status. Es gibt keinen Server, echten Account oder gespeicherte Einstellung. Wir prüfen den betroffenen Bereich und den unveränderten Nachbarn.

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');

Das Beispiel braucht den Playwright-Testrunner und importiertes expect. Die lokale Fixture liefert Namen und Klickhandler. Der Status belegt einen Oberflächeneffekt, keine Speicherung oder Zustellung.

Den Bereich begründen

Wählen Sie den Elternbereich anhand des gemeinten Datensatzes. Hier funktioniert der zugängliche Bereichsname. Andere Oberflächen brauchen vielleicht eine gefilterte Zeile oder eine vereinbarte Test-ID. Prüfen Sie die Identität nach Sortieren und Einfügen.

Exakter Text unterscheidet keine identisch beschrifteten Schaltflächen im selben Bereich. Die Anzahlprüfung zeigt eine falsche Eindeutigkeitsannahme vor der Aktion. Prüfen Sie zusätzlich die globale Anzahl, wenn die wiederholte Struktur zur Anforderung gehört.

Ein Locator wird bei Verwendung aufgelöst. Die Seite kann sich zwischen Beobachtungen ändern; eine Anzahl sperrt keinen DOM-Knoten. Playwright prüft den Klick weiterhin selbst. Die vorherige Zählung garantiert keine unveränderte Seite.

Positionen brauchen einen Reihenfolgevertrag

first(), last() und nth() können nach Änderungen ein anderes Element wählen. Eine Position ist begründet, wenn die Anforderung ausdrücklich die Reihenfolge betrifft, etwa den ersten Rang. Prüfen Sie Reihenfolge und Identität. Eine verschwundene Fehlermeldung reicht nicht.

Der lokale Test bestätigt zwei globale Treffer, fängt den strikten Klickfehler ab und prüft unveränderte Statuswerte. Danach klickt er im Bereich Weekly updates und prüft den Sicherheitsbereich. Das belegt diese Grenze, nicht jede Strictness-Ursache.

Notieren Sie beim Review Komponente, stabile Identität und erwartete Änderung. AnyTest beschreibt App-Erkundung und Tests für menschliches Review. Prüfen Sie wiederholte Controls gegen den gemeinten Datensatz. Ein bestimmter AnyTest-Locatoralgorithmus wird nicht behauptet.

Häufige Fragen

Unterscheidet exakter Text gleiche Beschriftungen?

Nein. Grenzen Sie auch Bereich oder Datensatz ein.

Ist first() immer falsch?

Nein. Es braucht eine ausdrückliche Reihenfolge und geprüfte Identität.

Quellen