44 คะแนน โดย xguru 2022-11-14 | 4 ความคิดเห็น | แชร์ทาง WhatsApp
  • เดิมที Selenium แทบจะเป็นมาตรฐานโดยพฤตินัยสำหรับงานเว็บอัตโนมัติ/การทดสอบ
    • เริ่มต้นได้ง่าย และรองรับภาษาโปรแกรมแทบทุกภาษา
    • เพียงพอ แต่ก็ได้แค่นั้น
    • ทำงานกับเว็บไซต์ที่ใช้เฟรมเวิร์ก JavaScript สมัยใหม่ได้ไม่ค่อยดีนัก (Angular, React, ..)
      → ไม่ได้แปลว่าใช้ไม่ได้เลย แต่แปลว่าทำงานได้ไม่ค่อยดี
    • แม้จะบอกว่าเอกสารประกอบทำได้ดี แต่พอจะทำอะไรที่หลุดจากเส้นทางหลักไปนิดหน่อย ก็หาตัวอย่างได้ยาก
  • เคยลองจะใช้พวก Chai, Mocha, Cypress แต่การตั้งค่าต่างกันไปหมด และสำหรับนักพัฒนา Python ก็ไม่ง่ายนัก
  • มีตัวเลือกแทน Selenium ถูกสร้างขึ้นมาหลายสิบตัว แต่ส่วนใหญ่ก็หายไปในไม่กี่ปี

Enter Playwright

  • ยอดเยี่ยม และที่สำคัญคือ Microsoft เป็นผู้สร้าง จึงน่าจะได้รับการสนับสนุนไปอีกนาน
  • ฟีเจอร์เด็ดของ Playwright คือ "การสร้างเทสต์อัตโนมัติ"
    • เปิดเบราว์เซอร์แล้วทำตามขั้นตอนทีละอย่าง จากนั้นมันจะบันทึกไว้และสร้างเป็นสคริปต์ Python ให้
    • ช่วยลดภาระในการหา XPath อะไรทำนองนั้นแบบที่ต้องทำใน Selenium
    • ขั้นตอนที่บันทึกไว้แบบนี้ แทบจะรันได้ทันทีโดยไม่ต้องแก้อะไร
  • ข้อดีอีกอย่างคือสามารถบันทึกวิดีโอขั้นตอนการทำงานไว้ดูได้
  • ข้อเสียอย่างเดียวคือยังใหม่อยู่ จึงมีบั๊กเยอะและเอกสารยังไม่ค่อยดี
  • แต่ถ้ามองโดยรวมแล้ว สำหรับทุกโปรเจกต์ใหม่ ฉันน่าจะเลือก Playwright

4 ความคิดเห็น

 
yangeok 2022-11-21

ในฐานะคนที่เคยใช้ puppeteer มาก่อนและย้ายมาใช้งาน playwright ได้สำเร็จอย่างเต็มตัว ผมมองว่าแค่ฟีเจอร์ codegen ของ playwright อย่างเดียวก็คุ้มค่าพอที่จะย้ายแล้ว

 
joone 2022-11-15

สำหรับคนที่ใช้แต่ Puppeteer มานานและใช้แค่ Node การจะย้ายไป Playwright ก็ไม่ใช่เรื่องง่ายที่จะตัดสินใจทำได้ทันทีเลยครับ

 
kunggom 2022-11-15

แทนที่จะคิดถึงการย้ายโปรเจ็กต์เดิมก่อน ลองพิจารณาอย่างจริงจังในการนำ Playwright มาใช้ตั้งแต่เริ่มโปรเจ็กต์ใหม่ดูก่อนไหม? หรือจะลองเริ่มจากโปรเจ็กต์ทดลองเล็ก ๆ ก็ดูน่าสนใจเหมือนกันครับ

 
kbumsik 2022-11-14

ผมว่า Playwright มี API ที่สอดคล้องกันข้ามภาษา (JS, Python) และดูสะอาดกว่านิดหน่อยครับ
โดยเฉพาะในกรณีของ Python รองรับ async ได้ดีมากเลยครับ 55