← Torna all’elenco

Playwright Automatic Test Common Pocket: Questo 3 errori sono i più facili da ribaltare.

itadol5j

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:

  1. Sempre aspettare che gli elementi siano caricati
  2. Il contenuto dinamico deve essere visibile.
  3. Ricorda di chiudere il browser e il contesto

In questo modo, il 99% degli errori comuni può essere evitato.