Puppeteer
เป็น Node library พัฒนาจาก Google
เตรียมชุดของ API สำหรับการควบคุม Google Chrome (Headless และ Non-headless)
หรือ Chromium ผ่าน DevTool protocol
ที่สำคัญไม่ต้องทำงานผ่าน Web Driver อีกต่อไป
ซึ่งถ้าใครใช้งานผ่าน Selenium จะรู้ว่ามันน่าเบื่อมาก ๆ
เพราะว่าต้อง update version ตาม Google Chrome !!

ข้อดีคือ ลด dependency ต่าง ๆ
สำหรับการควบคุมหรือจัดการ Google Chrome
แต่ก็ต้องแลกมาด้วยการเรียนรู้เพิ่มเติมนะ
นั่นคือต้องเขียนชุดการทดสอบด้วย NodeJS
แต่งานสายนี้ก็ต้องเรียนรู้อยู่แล้ว
ดังนั้นมาเริ่มใช้งานกัน

เริ่มด้วยการติดตั้ง module Puppeteer เข้า project

$npm i puppeteer

จากนั้นมาเริ่มเขียนชุดการทดสอบดีกว่า

เริ่มด้วยสิ่งที่ต้องการคือ การค้นหาข้อมูลที่ google

  • ต้องการทดสอบในหน้าจอขนาดต่าง ๆ
  • โดยค่า default จะเป็น headless mode แต่ใน demo จะกำหนด headless = false เพื่อดูการทำงาน
  • ค้นหาข้อมูล สวัสดี Puppeteer (ทำการกรอกคำที่ต้องการและกดปุ่ม Enter)
  • ตรวจสอบผลการทำงาน
  • ทำการ capture หน้าจอของแต่ละขั้นตอนด้วย (บันทึกเป็น PDF ก็ได้)

โดยที่ code เขียนไม่ง่ายไม่ยาก ดังนี้ (เขียนให้ทำงานได้เฉย ๆ นะ)

มาดูการทดสอบกันดูนะ เร็วมากมาย (เครื่องผมมันช้านะ)

ตัวอย่างของ code อยู่ที่ Github :: Up1

เพื่อความสนุกสนานมีให้ลองใช้งานผ่าน web browser ด้วยนะที่ Puppeteer Playground

โดยที่ Puppeteer เป็นอีกหนึ่งทางเลือกสำหรับการทดสอบ
ลองใช้งานกันดูนะ มันสนุก ๆ ในอีกรูปแบบนะ
ขอให้สนุกกับการ coding นะครับ