เมื่อวันที่ 13 เมษายนที่ผ่านมา หรือ วันสงกรานต์ของไทยนั่นเอง
ทางทีมพัฒนา Google Chrome ได้ปล่อย Chrome 59 (อยู่ใน Chrome Canary Channel เท่านั้น)
ซึ่งมี feature ที่น่าสนใจคือ Headless chrome

Headless mode นั้นเป็นอีกหนึ่งช่องทางในการใช้งาน browser
โดยที่ไม่ต้องแสดงออกมาทางหน้าจอ
ซึ่งปกติเราจะใช้งาน Headless mode ผ่านโปรแกรมพวก Virtual Display Managerเช่น Xvfb, VNC
ไม่เช่นนั้นก็ต้องใช้ PhantomJS และ NightmareJS เป็นต้น

มี use case ที่ใช้งานได้เช่น

  • การทดสอบระบบ web
  • การดึงข้อมูลออกมาจาก web
  • การทำ screenshot หน้า web
  • การบันทึก vdo ของการทดสอบระบบ web

มาลองใช้งานกันดูนิดหน่อย

Software ที่ใช้งานประกอบไปด้วย

  • Mac OS
  • Homebrew

เริ่มด้วยการติดตั้งผ่าน brew ด้วยคำสั่ง

brew install Caskroom/versions/google-chrome-canary

จากนั้นทำการ start Chrome แบบ headless ด้วยคำสั่ง

$/Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ Canary --headless --remote-debugging-port=9222 --disable-gpu http://www.somkiat.cc

คำอธิบาย
ใส่ parameter –headless เพื่อบอก mode การทำงาน
port ที่ใช้งานคือ 9222
ทดสอบไปที่ web ที่เราต้องการ

สามารถทดสอบเข้าใช้งานผ่าน browser ด้วย url = http://localhost:9222
เป็นการเข้าไป debug ระบบดังรูป

มาดูตัวอย่างการใช้งานกันนิดหน่อย

โดยเป็นการ extract ข้อมูล link ต่าง ๆ ออกมาจาก website
ซึ่งจะต้องใช้งานผ่าน Chrome Remote Interface
มี code ตัวอย่างซึ่งเขียนด้วย Node.js ดังนี้

เพียงเท่านี้ก็สามารถเริ่มต้นใช้งาน Chrome headless ได้แล้ว
ถ้าออกเป็นตัวจริง ๆ แล้วน่าจะมีอะไรที่น่าสนใจกว่านี้