วินิจฉัยการหมดเวลาของพร็อกซี Puppeteer ตามคำขอและหมุดหมายของหน้า
ใช้ requestfailed สำหรับความล้มเหลวของเครือข่ายและสถานะ HTTPResponse สำหรับการตอบกลับของเซิร์ฟเวอร์ ก่อนที่จะโทษพร็อกซีว่าทำให้การนำทางทั้งหน้าช้า
การตอบกลับที่รวดเร็วจาก curl หรือ Axios มักเป็นทรัพยากรเดียว Puppeteer ยังดึงสคริปต์ รูปภาพ เฟรม และ API จากหลายโฮสต์ แล้วรอหมุดหมายของหน้าที่เกิดภายหลังได้
เนื่องจากพร็อกซีถูกกำหนดค่าไว้บนหน้าที่มีอยู่แล้ว ให้สังเกตความล้มเหลวแต่ละรายการระหว่างการนำทาง:
page.on("requestfailed", request => {
console.log(request.url(), request.failure()?.errorText);
});
await page.goto(targetUrl, {
waitUntil: "domcontentloaded",
timeout: 30000,
});รันสิ่งนี้ในเวิร์กโฟลว์ async ด้วย targetUrl จริง ตัวอย่างรอ DOMContentLoaded ซึ่งเกิดก่อนการเสร็จสิ้นของรูปภาพที่จำเป็นทุกภาพหรือการตอบกลับของแอปพลิเคชันที่เกิดภายหลัง เปรียบเทียบหมุดหมายนั้นกับหมุดหมายที่การนำทางครั้งเดิมรออยู่: เอกสารหลัก DOM load หรือความเงียบของเครือข่ายเป็นผลลัพธ์ที่แตกต่างกัน
การตอบกลับ 403 หรือ 500 ไม่ใช่เหตุการณ์ requestfailed อ่านสถานะผ่าน HTTPResponse ด้วย
ใช้ข้อสังเกตเพื่อระบุทรัพยากรที่ช้าหรือถูกปฏิเสธ การยืนยันตัวตนซ้ำ หรือเงื่อนไขการรอที่เกิดภายหลัง การหมดเวลาที่นานขึ้นเพียงยืดการรอ ไม่ได้ลดงานของเบราว์เซอร์และไม่ได้พิสูจน์ว่าทุกการเชื่อมต่อทรัพยากรได้รับการยอมรับ