← Kembali ke daftar

Uji Otomatis Dramawan Pocket Umum: 3 kesalahan ini adalah yang termudah untuk mundur.

itadol5j

Uji Otomatis Dramawan Pocket Umum: 3 kesalahan ini adalah yang termudah untuk mundur.

Dramawan adalah alat otomatisasi peramban modern, tapi banyak orang melangkah dalam proses. 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 yang paling umum. Banyak orang menulis kode yang terlihat oke, tapi 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.

Praktek yang benar:

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

Atau dengan cara yang lebih modern:

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

Locator dramawan secara otomatis menunggu elemen untuk berinteraksi, yang merupakan keuntungan utama atas Selenium.

Galat 2: Terabaikan menunggu pemuatan dinamis

Banyak situs web memakai JavaScript dinamis untuk membuat konten. Naskah 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 或空字符串

Praktek 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 tertentu:

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

Galat 3: Siklus kehidupan konteks dan halaman dari peramban tidak diproses dengan benar

Banyak orang membuat contoh peramban dan lupa untuk mematikannya, menyebabkan kebocoran memori. Atau mematikan peramban pada waktu yang salah, menyebabkan script runtuh.

Kesalahan:

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

Praktek 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

Inti dramawan adalahTunggudanManajemen siklus kehidupanAku tidak tahu. Ingat tiga poin ini:

  1. Selalu menunggu sampai elemen dimuat
  2. Isi dinamis perlu terlihat.
  3. Ingat untuk menutup peramban dan konteks

Dengan cara ini, 99% dari kesalahan umum dapat dihindari.