8 คะแนน โดย GN⁺ 2024-12-13 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • ไลบรารี Python สำหรับทำงานอัตโนมัติกับเบราว์เซอร์อย่าง Chrome/Firefox
  • Helium สร้างขึ้นบน Selenium และมี API ระดับสูงกว่า
    • โดยทั่วไปสคริปต์ Helium จะสั้นกว่าสคริปต์ Selenium 30-50% และอ่านง่ายกับมีเสถียรภาพมากกว่า
    • ใน Selenium ต้องใช้ HTML ID, XPath, CSS selector แต่ Helium สามารถอ้างอิงองค์ประกอบผ่านป้ายข้อความที่ผู้ใช้มองเห็นได้
    • สามารถใช้ Helium และ Selenium ร่วมกันได้
  • ข้อดีของ Helium
    • iFrames: Helium สามารถโต้ตอบกับองค์ประกอบภายใน iFrame ที่ซ้อนกันได้
    • การจัดการหน้าต่าง: ตรวจจับหน้าต่างป๊อปอัปอัตโนมัติและโฟกัสให้ สามารถสลับได้ง่าย
    • การรอแบบปริยาย: หากคลิกก่อนที่องค์ประกอบบางอย่างจะโหลดเสร็จ จะรอโดยอัตโนมัติได้นานสูงสุด 10 วินาทีจนกว่าจะปรากฏ (Selenium จะทำให้สคริปต์ล้มเหลว)
    • การรอแบบชัดเจน: มี API ที่ดีกว่าสำหรับการรอจนกว่าเงื่อนไขจะเป็นจริง
  • ปัจจุบันไม่มีการซัพพอร์ตฟรี เนื่องจากมีเวลาไม่เพียงพอสำหรับการดูแลโปรเจกต์
    • ยอมรับ PR และยินดีรับการมีส่วนร่วม
  • ประวัติ
    • Helium ถูกพัฒนาขึ้นในปี 2013 สำหรับ BugFree Software สตาร์ตอัปไอทีจากโปแลนด์
    • ในปี 2019 บริษัทปิดตัวลง และ Helium ถูกเปลี่ยนเป็นโอเพนซอร์ส
    • เดิมใช้งานได้ทั้งใน Java และ Python แต่ปัจจุบันรองรับเฉพาะ Python
    • ชื่อ Helium มาจากธาตุเคมีเช่นเดียวกับ Selenium และสื่อถึงความเบากว่า

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

 
GN⁺ 2024-12-13
ความคิดเห็นจาก Hacker News
  • ผู้ก่อตั้งโปรเจกต์ Selenium ระบุว่า API ของ Helium คล้ายกับ API ยุคแรกของ Selenium พร้อมเน้นว่ามี API สำหรับงานอัตโนมัติอยู่หลายสไตล์ และไม่มี API แบบใดที่ทำให้ทุกคนพอใจได้ โดยส่วนตัวแล้วชอบสไตล์ฟังก์ชันแบบเรียบง่ายมากกว่า

    • เหตุผลที่ชอบ 'Uniform Function Call Syntax' ของภาษาโปรแกรม Nim ก็อยู่ในบริบทเดียวกัน
  • ลินเตอร์ของ Python ส่วนใหญ่และเอกสารแนวปฏิบัติที่ดีมักไม่แนะนำ import * โดยสามารถใช้ให้กระชับได้ด้วยวิธีอย่าง import helium as h แทน

    • คล้ายกับวิธีเลี่ยงที่มักใช้กันทั่วไปในงานบราวเซอร์อัตโนมัติบน Python
    • ตามสุภาษิตที่ว่า explicit ดีกว่า implicit จึงกังวลว่าเลเยอร์แบบนี้อาจก่อปัญหาด้านความสามารถในการอ่านโค้ด
  • ผู้ใช้ที่เคยทำงานอัตโนมัติชั่วคราวด้วย Selenium กล่าวว่าถ้ามี API ของ Helium ที่คล้ายภาษาธรรมชาติ ก็น่าจะช่วยได้มาก

  • ตั้งข้อสงสัยกับคำกล่าวที่ว่าแรปเปอร์ของ Selenium เบากว่า เพราะโดยพื้นฐานแล้วแรปเปอร์ย่อมมีโค้ดและฟังก์ชันเพิ่มมากขึ้น ไม่ได้ใช้ทรัพยากรน้อยลงหรือทำงานเร็วกว่า

    • เน้นว่างานทดสอบอัตโนมัติไม่ได้แก้ได้ด้วย API ที่ดูดีเพียงอย่างเดียว และการทำระบบอัตโนมัติให้ยั่งยืนต้องอาศัยวิศวกรรมซอฟต์แวร์จริงจัง
  • สงสัยว่า Helium เทียบกับ Playwright, Selenium, Cypress และ Puppeteer เป็นอย่างไร

  • แสดงความขอบคุณที่พยายามทำให้ Helium ไม่หายไป

  • สงสัยว่าสามารถเริ่มต้นด้วยชื่อโปรไฟล์เบราว์เซอร์ Chrome ที่ระบุไว้ หรือใช้เซสชัน Firefox/Chrome เดิมซ้ำได้หรือไม่

  • ตั้งคำถามว่าการแยกแยะระบบอัตโนมัติออกจากผู้ใช้จริงนั้นง่ายแค่ไหน หากใช้งานเว็บผ่านระบบอัตโนมัติ ก็อาจเสี่ยงต่อการถูกปิดกั้นการเข้าถึงได้

  • กล่าวว่าน่าจะใช้ Helium สร้าง agent flow ได้ และสนใจการสร้าง sandbox instance ที่สามารถเก็บข้อมูลหรือตอบคำถามได้

  • สงสัยว่า Helium รู้จักฟิลด์ของผู้ใช้อย่างไร เช่น อ่าน label แล้วถือว่าสิ่งที่อยู่ด้านล่างหรือด้านขวาเป็นฟิลด์ของผู้ใช้หรือไม่