Playwright Automatic Test Common Pocket: Estos 3 errores son los más fáciles de revocar.
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:
- Siempre espere hasta que los elementos estén cargados
- El contenido dinámico debe ser visible.
- Recuerde cerrar el navegador y el contexto
De esta manera, se puede evitar el 99% de los errores comunes.