← Volver a la lista

Playwright Automatic Test Common Pocket: Estos 3 errores son los más fáciles de revocar.

itadol5j

Playwright Automatic Test Common Pocket: Estos 3 errores son los más fáciles de revocar.

Playwright es una herramienta moderna de automatización de navegadores, pero mucha gente paso en el proceso. Y hoy voy a sacar los tres errores más comunes, y voy a ayudarte a evitar los hoyos.

Error 1: Operaciones sin esperar la carga de elementos

Este es el pozo más común. Mucha gente escribe códigos que se ven bien, pero se equivocan:element not foundNo lo sé.

Error:

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

El problema es que la página puede no ser cargada y el botón no existe.

Práctica correcta:

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

O de una manera más moderna:

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

El localizador de Playwright espera automáticamente elementos para interactuar, lo que es una ventaja importante sobre Selenium.

Error 2: Neglected waiting for dynamic loading

Muchos sitios web utilizan JavaScript dinámicamente para renderizar contenido. Su script puede haber comenzado a extraer datos antes de que los contenidos fueran cargados.

Error:

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

Práctica correcta:

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

O para elementos específicos:

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

Error 3: El contexto y el ciclo de vida de página del navegador no fue procesado correctamente

Muchas personas crean ejemplos del navegador y olvidan apagarlos, causando fuga de memoria. O cerrar el navegador en el momento equivocado, causando que el script colapse.

Error:

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

Práctica correcta:

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

O de una manera más 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();
}

Resumen

El núcleo de Playwright esEspera.yGestión del ciclo de vidaNo lo sé. Recuerde estos tres puntos:

  1. Siempre espere hasta que los elementos estén cargados
  2. El contenido dinámico debe ser visible.
  3. Recuerde cerrar el navegador y el contexto

De esta manera, se puede evitar el 99% de los errores comunes.