QA The Other WayKwaliteitsborging voor het tijdperk van door AI geschreven tests. QA The Other Way.
Praktische QA

Ga het frame in voordat je het bedieningselement benoemt.

Houd een ingebed formulier binnen zijn eigen document, zonder DOM-volgorde tot productafspraak te maken.

6 minuten leestijdQA The Other Way
Eigen diagram van geneste documenten met ingebed formulier en ongewijzigde buitenpagina.
Eigen redactionele illustratie.
Illustratieve video bij dit artikel. Engelse tekst op het scherm; selecteer ondertitels voor deze taal.

Vertaalde editie. Technische identificatiegegevens blijven in hun oorspronkelijke vorm.

Houd een ingebed formulier binnen zijn eigen document, zonder DOM-volgorde tot productafspraak te maken.
Lokale demonstratie met verzonnen invoer, geen klant- of leveranciersinterface.

Een pagina heeft twee Opslaan-knoppen. De ene hoort bij de pagina-instellingen, de andere bij een ingebed formulier. Alleen Opslaan noemen zegt niet welk document de actie moet ontvangen. Een langere selector buiten het ingebedde document vult die ontbrekende scope niet in.

Deze handleiding gebruikt Playwrights framedocumentatie met een verzonnen lokaal formulier. De ingebedde voorkeur moet veranderen, terwijl de buitenpagina gelijk blijft. Dit is geen betaalwidget, leveranciersintegratie of beveiligingsonderzoek. De vraag is of de test binnen het bedoelde frame handelt.

Benoem het document vóór het element

Paginalocators werken in het hoofdframe. Een iframe heeft een eigen document. Gebruik een framelocator om binnen te gaan en zoek daarna op de toegankelijke naam. De twee scopes maken de test duidelijk zonder schermcoördinaten.

const preferences = page.frameLocator('iframe[title="Demo preferences"]');
await preferences.getByLabel('Display name').fill('Demo reader');
await preferences.getByRole('button', { name: 'Save', exact: true }).click();
await expect(preferences.getByRole('status')).toHaveText('Saved: Demo reader');
await expect(page.getByRole('status')).toHaveText('Outer page unchanged');

Het voorbeeld veronderstelt het genoemde iframe, een toegankelijk veld en een status in beide documenten. Importeer expect uit de Playwright-testrunner. De laatste controle maakt een verkeerde actie op de buitenpagina zichtbaar, in plaats van elk geslaagd opslaan als bewijs te zien.

De iframe-titel is hier een afspraak voor de testopstelling, geen algemeen advies. Kies een identificatie die het product betekenisvol houdt. Hebben meerdere onderdelen dezelfde titel, dan ontbreekt nog steeds één eigenaar. Vraag het team in plaats van het eerste frame te kiezen.

Laat dubbelzinnigheid duidelijk mislukken

De FrameLocator-API beschrijft een fout als een selector meerdere frames vindt. Dat is informatie: er kwam misschien een tweede onderdeel bij, of de selector was nooit uniek.

Voeg niet automatisch first() of nth() toe. Positie kan een echte eis zijn, maar stel die eerst vast. Altijd het eerste frame kiezen kan groen blijven nadat een ander onderdeel ervoor is verschenen.

Geneste frames voegen scope toe, geen toestemming om te gokken. Volg de bedoelde documentketen en houd de referentie bij haar controles. De gids beschrijft ook een Frame zoeken op naam of URL. Kies wat de echte relatie uitdrukt, niet een toevallig werkende verzameling zoekacties.

Controleer de uitkomst binnen de grens

Een ingevuld veld bewijst een browseractie. Een statusbericht bewijst wat de interface meldt. Geen van beide bewijst op zichzelf dat een externe dienst de voorkeur opsloeg. Onze opstelling heeft geen server. De schermafbeelding toont het mechanisme, geen afgeronde integratie.

Bepaal voor een echt product het toegestane testrecord en de verwachte blijvende uitkomst. Controleer die via ondersteund bewijs en houd effecten tussen diensten in de toegestane testomgeving. Een bereikbaar ingebed element geeft niet vanzelf toestemming voor betalen, instemmen of accountwijzigingen.

Een framecontrole certificeert ook geen toetsenbordbediening, focusoverdracht of schermlezers. Daarvoor zijn aparte verwachtingen nodig. Een zichtbaar label kan samengaan met slecht focusgedrag.

Laat een concrete beoordelingsnotitie achter

Noteer frame-eigenaar, elementnaam, gewijzigde toestand en ongewijzigde buur. Zo onderscheid je een ontbrekend onderdeel van een dubbelzinnig doel of gewijzigde afspraak. Gebruik alleen verzonnen of toegestane testrecords in beelden en traces.

AnyTest beschrijft agents die webapps verkennen en end-to-endtests maken voor menselijke beoordeling. Vraag welk document de actie ontvangt en wat het resultaat bewijst. Er wordt geen bijzondere AnyTest-frame-API beloofd. Benoem eerst het document, dan het element.

Veelgestelde vragen

Gaat een paginalocator alle iframes in?

Pagina-acties werken in het hoofdframe. Ga eerst het bedoelde iframe in om zijn elementen te vinden.

Moet een dubbelzinnige selector het eerste frame kiezen?

Alleen als de positie de afgesproken eis is. Herstel anders de afspraak over eigenaarschap.

Bronnen