- เดิมที Selenium แทบจะเป็นมาตรฐานโดยพฤตินัยสำหรับงานเว็บอัตโนมัติ/การทดสอบ
- เริ่มต้นได้ง่าย และรองรับภาษาโปรแกรมแทบทุกภาษา
- เพียงพอ แต่ก็ได้แค่นั้น
- ทำงานกับเว็บไซต์ที่ใช้เฟรมเวิร์ก JavaScript สมัยใหม่ได้ไม่ค่อยดีนัก (Angular, React, ..)
→ ไม่ได้แปลว่าใช้ไม่ได้เลย แต่แปลว่าทำงานได้ไม่ค่อยดี
- แม้จะบอกว่าเอกสารประกอบทำได้ดี แต่พอจะทำอะไรที่หลุดจากเส้นทางหลักไปนิดหน่อย ก็หาตัวอย่างได้ยาก
- เคยลองจะใช้พวก Chai, Mocha, Cypress แต่การตั้งค่าต่างกันไปหมด และสำหรับนักพัฒนา Python ก็ไม่ง่ายนัก
- มีตัวเลือกแทน Selenium ถูกสร้างขึ้นมาหลายสิบตัว แต่ส่วนใหญ่ก็หายไปในไม่กี่ปี
Enter Playwright
- ยอดเยี่ยม และที่สำคัญคือ Microsoft เป็นผู้สร้าง จึงน่าจะได้รับการสนับสนุนไปอีกนาน
- ฟีเจอร์เด็ดของ Playwright คือ "การสร้างเทสต์อัตโนมัติ"
- เปิดเบราว์เซอร์แล้วทำตามขั้นตอนทีละอย่าง จากนั้นมันจะบันทึกไว้และสร้างเป็นสคริปต์ Python ให้
- ช่วยลดภาระในการหา XPath อะไรทำนองนั้นแบบที่ต้องทำใน Selenium
- ขั้นตอนที่บันทึกไว้แบบนี้ แทบจะรันได้ทันทีโดยไม่ต้องแก้อะไร
- ข้อดีอีกอย่างคือสามารถบันทึกวิดีโอขั้นตอนการทำงานไว้ดูได้
- ข้อเสียอย่างเดียวคือยังใหม่อยู่ จึงมีบั๊กเยอะและเอกสารยังไม่ค่อยดี
- แต่ถ้ามองโดยรวมแล้ว สำหรับทุกโปรเจกต์ใหม่ ฉันน่าจะเลือก Playwright
4 ความคิดเห็น
ในฐานะคนที่เคยใช้ puppeteer มาก่อนและย้ายมาใช้งาน playwright ได้สำเร็จอย่างเต็มตัว ผมมองว่าแค่ฟีเจอร์ codegen ของ playwright อย่างเดียวก็คุ้มค่าพอที่จะย้ายแล้ว
สำหรับคนที่ใช้แต่ Puppeteer มานานและใช้แค่ Node การจะย้ายไป Playwright ก็ไม่ใช่เรื่องง่ายที่จะตัดสินใจทำได้ทันทีเลยครับ
แทนที่จะคิดถึงการย้ายโปรเจ็กต์เดิมก่อน ลองพิจารณาอย่างจริงจังในการนำ Playwright มาใช้ตั้งแต่เริ่มโปรเจ็กต์ใหม่ดูก่อนไหม? หรือจะลองเริ่มจากโปรเจ็กต์ทดลองเล็ก ๆ ก็ดูน่าสนใจเหมือนกันครับ
ผมว่า Playwright มี API ที่สอดคล้องกันข้ามภาษา (JS, Python) และดูสะอาดกว่านิดหน่อยครับ
โดยเฉพาะในกรณีของ Python รองรับ async ได้ดีมากเลยครับ 55