← Quay lại danh sách

Trình soạn thảo tự động Thử ra Chung: 3 lỗi này là dễ lật đổ.

itadol5j

Trình soạn thảo tự động Thử ra Chung: 3 lỗi này là dễ lật đổ.

Tác giả là một công cụ tự động hóa trình duyệt hiện đại, nhưng rất nhiều người đã bước vào quá trình này. Và hôm nay tôi sẽ loại bỏ ba sai lầm phổ biến nhất, và tôi sẽ giúp bạn tránh những cái hố.

Lỗi 1: thao tác mà không đợi phần tử tải

Đây là cái hố thông thường nhất. Rất nhiều người viết mã mà trông ổn, nhưng chạy sai:element not foundTôi không biết.

Lỗi:

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

Vấn đề là trang này có lẽ không được tải và cái nút không tồn tại.

Thực hành đúng:

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

Hay theo cách hiện đại hơn:

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

Bộ định vị của nhà soạn kịch tự động chờ cho các yếu tố tương tác, đó là một lợi thế lớn hơn Selenium.

Lỗi 2: Đang đợi tải động

Nhiều nơi Mạng sử dụng JavaScript một cách năng động để trình bày nội dung. Có lẽ tập lệnh của bạn đã bắt đầu lấy dữ liệu trước khi tải nội dung.

Lỗi:

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

Thực hành đúng:

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

Hoặc cho các yếu tố cụ thể:

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

Lỗi 3:

Nhiều người tạo ra các ví dụ về trình duyệt và quên tắt chúng, gây ra sự rò rỉ bộ nhớ. Hoặc tắt trình duyệt không đúng lúc, làm cho tập lệnh sụp đổ.

Lỗi:

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

Thực hành đúng:

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

Hay theo một cách thanh lịch hơn:

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();
}

Tóm tắt

Cốt lõi của nhà soạn kịch làKhoan.vàQuản lý chu kỳ Cuộc sốngTôi không biết. Hãy nhớ ba điểm sau:

  1. Luôn đợi đến khi nạp đạn nguyên tố
  2. Nội dung năng động cần được nhìn thấy.
  3. Nhớ đóng trình duyệt và văn cảnh

Bằng cách này, 99% sai lầm thông thường có thể tránh được.