Playwright automatisk test fælles lomme: Denne 3 fejl er de nemmeste at vælte.
Playwright automatisk test fælles lomme: Denne 3 fejl er de nemmeste at vælte.
Playwright er en moderne browser automatisering værktøj, men en masse mennesker træder i processen. Og i dag vil jeg fjerne de tre mest almindelige fejl, og jeg vil hjælpe dig med at undgå hullerne.
Fejl 1: Operationer uden at vente på indlæsning af element
Det er det mest almindelige hul. Mange mennesker skriver koder, der ser okay ud, men kør dem forkert:element not foundDet ved jeg ikke.
Fejl:
await page.click("#submit-btn");
Problemet er, at siden ikke kan indlæses og knappen ikke findes.
Korrekt praksis:
await page.waitForSelector("#submit-btn");
await page.click("#submit-btn");
Eller på en mere moderne måde:
await page.locator("#submit-btn").click();
Playwrights locator venter automatisk på elementer til at interagere, hvilket er en stor fordel i forhold til Selenium.
Fejl 2: Forsøget venter på dynamisk indlæsning
Mange hjemmesider bruger JavaScript dynamisk til at gøre indhold. Dit script kan være begyndt at udtrække data, før indholdet blev indlæst.
Fejl:
await page.goto("https://example.com");
const text = await page.textContent(".dynamic-content");
console.log(text); // 可能是 null 或空字符串
Korrekt praksis:
await page.goto("https://example.com");
await page.waitForLoadState("networkidle");
const text = await page.textContent(".dynamic-content");
console.log(text);
eller for specifikke elementer:
await page.locator(".dynamic-content").waitFor({ state: "visible" });
const text = await page.textContent(".dynamic-content");
Fejl 3: Browsers kontekst og sidelivscyklus blev ikke behandlet korrekt
Mange mennesker skaber browser eksempler og glemmer at slukke dem, forårsager hukommelse lækage. Eller lukke browseren ned på det forkerte tidspunkt, hvilket får scriptet til at kollapse.
Fejl:
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto("https://example.com");
// 忘记关闭浏览器
Korrekt praksis:
const browser = await chromium.launch();
try {
const page = await browser.newPage();
await page.goto("https://example.com");
// 你的操作
} finally {
await browser.close();
}
Eller på en mere elegant måde:
const browser = await chromium.launch();
const context = await browser.newContext();
const page = await context.newPage();
try {
await page.goto("https://example.com");
// 你的操作
} finally {
await context.close();
await browser.close();
}
Oversigt
Playwrights kerne erVent.ogLivscyklusstyringDet ved jeg ikke. Husk disse tre punkter:
- Vent altid indtil elementer er indlæst
- Dynamisk indhold skal være synligt.
- Husk at lukke browseren og sammenhængen
På denne måde kan 99% af de almindelige fejl undgås.