Playwright Automatic Test Common Pocket: Disse 3 feilene er enklest å snu.
Playwright Automatic Test Common Pocket: Disse 3 feilene er enklest å snu.
Playwright er et moderne nettleser automatiseringsverktøy, men mange mennesker går i prosessen. Og i dag skal jeg ta ut de tre vanligste feilene, og jeg vil hjelpe deg å unngå gropene.
Feil 1: Operasjoner uten å vente på element lasting
Dette er den vanligste piten. Mange skriver koder som ser bra ut, men kjører dem feil:element not foundJeg vet ikke.
Feil:
await page.click("#submit-btn");
Problemet er at siden ikke kan lastes og knappen ikke eksisterer.
Rett praksis:
await page.waitForSelector("#submit-btn");
await page.click("#submit-btn");
Eller på en mer moderne måte:
await page.locator("#submit-btn").click();
Playwrights locator venter automatisk på at elementer skal samhandle, noe som er en stor fordel over Selenium.
Feil 2: Neiglet venter på dynamisk lasting
Mange nettsteder bruker JavaScript dynamisk for å gjøre innhold. Skriptet ditt kan ha begynt å trekke ut data før innholdet ble lastet.
Feil:
await page.goto("https://example.com");
const text = await page.textContent(".dynamic-content");
console.log(text); // 可能是 null 或空字符串
Rett praksis:
await page.goto("https://example.com");
await page.waitForLoadState("networkidle");
const text = await page.textContent(".dynamic-content");
console.log(text);
Eller for bestemte elementer:
await page.locator(".dynamic-content").waitFor({ state: "visible" });
const text = await page.textContent(".dynamic-content");
Feil 3: Kontekst og side livssyklusen til nettleseren ble ikke behandlet riktig
Mange mennesker lager nettlesereksempler og glemmer å slå dem av, forårsake minnelekkasje. Eller slå av nettleseren på feil tidspunkt, noe som forårsaker at manuset kollapser.
Feil:
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto("https://example.com");
// 忘记关闭浏览器
Rett praksis:
const browser = await chromium.launch();
try {
const page = await browser.newPage();
await page.goto("https://example.com");
// 你的操作
} finally {
await browser.close();
}
Eller på mer elegant måte:
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();
}
Sammendrag
Playwrights kjerne erVentogLivssyklusstyringJeg vet ikke. Husk disse tre poengene:
- Vent alltid til elementene er lastet
- Dynamisk innhold må være synlig.
- Husk å lukke nettleseren og konteksten
På denne måten kan 99% av vanlige feil unngås.