Playwright Automatic Test Common Pocket: Kesalahan 3 ini adalah yang termudah untuk overturn.
Playwright Automatic Test Common Pocket: Kesalahan 3 ini adalah yang termudah untuk overturn.
Wanny Playwright adalah alat otomasi peramban modern, tetapi banyak orang yang melangkah dalam prosesnya. Dan hari ini saya akan mengambil tiga kesalahan yang paling umum, dan saya akan membantu Anda menghindari lubang.
Galat 1: Operasi tanpa menunggu pemuatan elemen
Ini adalah lubang paling umum. Banyak orang menulis kode yang terlihat baik-baik saja, tetapi menjalankan mereka salah:element not foundAku tidak tahu.
Kesalahan:
await page.click("#submit-btn");
Masalahnya adalah bahwa halaman mungkin tidak dimuat dan tombol tidak ada.
Praktik yang benar:
await page.waitForSelector("#submit-btn");
await page.click("#submit-btn");
Atau dengan cara yang lebih modern:
await page.locator("#submit-btn").click();
Lokator Playwright secara otomatis menunggu unsur-unsur untuk berinteraksi, yang merupakan keuntungan utama atas Selenium.
Error 2: Terabaikan menunggu pemuatan dinamis
Banyak situs web yang menggunakan JavaScript secara dinamis untuk merender konten. Skrip Anda mungkin telah mulai mengekstrak data sebelum isi dimuat.
Kesalahan:
await page.goto("https://example.com");
const text = await page.textContent(".dynamic-content");
console.log(text); // 可能是 null 或空字符串
Praktik yang benar:
await page.goto("https://example.com");
await page.waitForLoadState("networkidle");
const text = await page.textContent(".dynamic-content");
console.log(text);
Atau untuk elemen spesifik:
await page.locator(".dynamic-content").waitFor({ state: "visible" });
const text = await page.textContent(".dynamic-content");
Kesalahan 3: Siklus kehidupan konteks dan halaman peramban tidak diproses dengan benar
Banyak orang membuat contoh peramban dan lupa mematikannya, menyebabkan kebocoran memori. Atau mematikan peramban pada waktu yang salah, menyebabkan skrip runtuh.
Kesalahan:
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto("https://example.com");
// 忘记关闭浏览器
Praktik yang benar:
const browser = await chromium.launch();
try {
const page = await browser.newPage();
await page.goto("https://example.com");
// 你的操作
} finally {
await browser.close();
}
Atau dengan cara yang lebih elegan:
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();
}
Ringkasan
Pusat Playwright adalahTungguDanManajemen siklus kehidupanAku tidak tahu. Ingat tiga poin ini:
- Selalu tunggu sampai elemen dimuat
- Kandungan termodinamis perlu terlihat.
- Ingat untuk menutup peramban dan konteks
Dengan cara ini, 99% kesalahan umum dapat dihindari.