- ไลบรารี 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 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ผู้ก่อตั้งโปรเจกต์ Selenium ระบุว่า API ของ Helium คล้ายกับ API ยุคแรกของ Selenium พร้อมเน้นว่ามี API สำหรับงานอัตโนมัติอยู่หลายสไตล์ และไม่มี API แบบใดที่ทำให้ทุกคนพอใจได้ โดยส่วนตัวแล้วชอบสไตล์ฟังก์ชันแบบเรียบง่ายมากกว่า
ลินเตอร์ของ Python ส่วนใหญ่และเอกสารแนวปฏิบัติที่ดีมักไม่แนะนำ
import *โดยสามารถใช้ให้กระชับได้ด้วยวิธีอย่างimport helium as hแทนผู้ใช้ที่เคยทำงานอัตโนมัติชั่วคราวด้วย Selenium กล่าวว่าถ้ามี API ของ Helium ที่คล้ายภาษาธรรมชาติ ก็น่าจะช่วยได้มาก
ตั้งข้อสงสัยกับคำกล่าวที่ว่าแรปเปอร์ของ Selenium เบากว่า เพราะโดยพื้นฐานแล้วแรปเปอร์ย่อมมีโค้ดและฟังก์ชันเพิ่มมากขึ้น ไม่ได้ใช้ทรัพยากรน้อยลงหรือทำงานเร็วกว่า
สงสัยว่า Helium เทียบกับ Playwright, Selenium, Cypress และ Puppeteer เป็นอย่างไร
แสดงความขอบคุณที่พยายามทำให้ Helium ไม่หายไป
สงสัยว่าสามารถเริ่มต้นด้วยชื่อโปรไฟล์เบราว์เซอร์ Chrome ที่ระบุไว้ หรือใช้เซสชัน Firefox/Chrome เดิมซ้ำได้หรือไม่
ตั้งคำถามว่าการแยกแยะระบบอัตโนมัติออกจากผู้ใช้จริงนั้นง่ายแค่ไหน หากใช้งานเว็บผ่านระบบอัตโนมัติ ก็อาจเสี่ยงต่อการถูกปิดกั้นการเข้าถึงได้
กล่าวว่าน่าจะใช้ Helium สร้าง agent flow ได้ และสนใจการสร้าง sandbox instance ที่สามารถเก็บข้อมูลหรือตอบคำถามได้
สงสัยว่า Helium รู้จักฟิลด์ของผู้ใช้อย่างไร เช่น อ่าน label แล้วถือว่าสิ่งที่อยู่ด้านล่างหรือด้านขวาเป็นฟิลด์ของผู้ใช้หรือไม่