Playwright Automatic Test Common Pocket: Questo 3 errori sono i più facili da ribaltare.
Playwright Automatic Test Common Pocket: Questo 3 errori sono i più facili da ribaltare.
Playwright è un moderno strumento di automazione del browser, ma molte persone passo nel processo. E oggi mi occupero' dei tre errori piu' comuni, e ti aiutero' ad evitare i box.
Errore 1: Operazioni senza attendere il caricamento degli elementi
Questo è il pozzo più comune. Molte persone scrivono i codici che sembrano ok, ma li eseguono male:element not foundNon lo so.
Errore:
await page.click("#submit-btn");
Il problema è che la pagina non può essere caricata e il pulsante non esiste.
Corretta pratica:
await page.waitForSelector("#submit-btn");
await page.click("#submit-btn");
O in modo più moderno:
await page.locator("#submit-btn").click();
Il locatore di Playwright aspetta automaticamente che gli elementi interagiscano, che è un grande vantaggio su Selenium.
Errore 2: Trascurato in attesa di carico dinamico
Molti siti web utilizzano JavaScript dinamicamente per rendere i contenuti. Il tuo script potrebbe aver iniziato a estrarre i dati prima che i contenuti fossero caricati.
Errore:
await page.goto("https://example.com");
const text = await page.textContent(".dynamic-content");
console.log(text); // 可能是 null 或空字符串
Corretta pratica:
await page.goto("https://example.com");
await page.waitForLoadState("networkidle");
const text = await page.textContent(".dynamic-content");
console.log(text);
O per elementi specifici:
await page.locator(".dynamic-content").waitFor({ state: "visible" });
const text = await page.textContent(".dynamic-content");
Errore 3: Il contesto e il ciclo di vita della pagina del browser non è stato elaborato correttamente
Molte persone creano esempi di browser e dimenticano di spegnerli, causando perdite di memoria. O spegnere il browser al momento sbagliato, causando il collasso dello script.
Errore:
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto("https://example.com");
// 忘记关闭浏览器
Corretta pratica:
const browser = await chromium.launch();
try {
const page = await browser.newPage();
await page.goto("https://example.com");
// 你的操作
} finally {
await browser.close();
}
O in modo più elegante:
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();
}
Sintesi
Il nucleo di Playwright èAspetta.eGestione del ciclo di vitaNon lo so. Ricorda questi tre punti:
- Sempre aspettare che gli elementi siano caricati
- Il contenuto dinamico deve essere visibile.
- Ricorda di chiudere il browser e il contesto
In questo modo, il 99% degli errori comuni può essere evitato.