← Voltar à lista

Teste Automático Playwright Common Pocket: Este 3 erros são os mais fáceis de reverter.

itadol5j

Teste Automático Playwright Common Pocket: Este 3 erros são os mais fáceis de reverter.

Playwright é uma ferramenta de automação de navegador moderna, mas muitas pessoas pisam no processo. E hoje vou eliminar os três erros mais comuns, e vou ajudá-lo a evitar as covas.

Erro 1: Operações sem esperar pelo carregamento de elementos

Este é o poço mais comum. Muitas pessoas escrevem códigos que parecem bons, mas executam-nos mal.element not foundNão sei.

Erro:

await page.click("#submit-btn");

O problema é que a página pode não ser carregada e o botão não existe.

Prática correta:

await page.waitForSelector("#submit-btn");
await page.click("#submit-btn");

Ou de uma forma mais moderna:

await page.locator("#submit-btn").click();

O localizador do dramaturgo espera automaticamente que elementos interajam, o que é uma grande vantagem sobre o Selenium.

Erro 2: Negado à espera de carregamento dinâmico

Muitos sites usam o JavaScript dinamicamente para renderizar conteúdo. Seu script pode ter começado a extrair dados antes do conteúdo ser carregado.

Erro:

await page.goto("https://example.com");
const text = await page.textContent(".dynamic-content");
console.log(text); // 可能是 null 或空字符串

Prática correta:

await page.goto("https://example.com");
await page.waitForLoadState("networkidle");
const text = await page.textContent(".dynamic-content");
console.log(text);

Ou para elementos específicos:

await page.locator(".dynamic-content").waitFor({ state: "visible" });
const text = await page.textContent(".dynamic-content");

Erro 3: O contexto e o ciclo de vida da página do navegador não foram processados corretamente

Muitas pessoas criam exemplos de navegador e esquecem de desligá-los, causando vazamento de memória. Ou desligue o navegador na hora errada, causando o colapso do script.

Erro:

const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto("https://example.com");
// 忘记关闭浏览器

Prática correta:

const browser = await chromium.launch();
try {
  const page = await browser.newPage();
  await page.goto("https://example.com");
  // 你的操作
} finally {
  await browser.close();
}

Ou de uma forma mais 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();
}

Resumo

O núcleo do dramaturgo éEspera.eGestão do ciclo de vidaNão sei. Lembre-se destes três pontos:

  1. Sempre aguarde até que os elementos sejam carregados
  2. O conteúdo dinâmico precisa ser visível.
  3. Lembre-se de fechar o navegador e contexto

Desta forma, 99% dos erros comuns podem ser evitados.