8 điểm bởi GN⁺ 2024-12-13 | 1 bình luận | Chia sẻ qua WhatsApp
  • Thư viện Python để tự động hóa các trình duyệt như Chrome/Firefox
  • Helium được xây dựng dựa trên Selenium và cung cấp API ở mức cao hơn
    • Script Helium thường ngắn hơn 30-50% so với script Selenium, dễ đọc hơn và ổn định hơn
    • Trong Selenium, bạn phải dùng HTML ID, XPath, bộ chọn CSS, nhưng với Helium, bạn có thể tham chiếu phần tử bằng nhãn mà người dùng nhìn thấy
    • Có thể sử dụng kết hợp Helium và Selenium
  • Ưu điểm của Helium
    • iFrames: Helium có thể tương tác với các phần tử bên trong iFrame lồng nhau.
    • Quản lý cửa sổ: Tự động phát hiện cửa sổ popup và đưa tiêu điểm vào đó. Có thể chuyển đổi dễ dàng
    • Chờ ngầm: Nếu bấm vào một phần tử trước khi nó được tải xong, mặc định sẽ chờ tối đa 10 giây cho đến khi nó xuất hiện (Selenium sẽ làm script thất bại)
    • Chờ tường minh: Cung cấp API tốt hơn để chờ cho đến khi điều kiện được đáp ứng.
  • Hiện tại không còn hỗ trợ miễn phí do thiếu thời gian để bảo trì dự án
    • Vẫn chấp nhận PR và hoan nghênh đóng góp.
  • Lịch sử
    • Helium được phát triển vào năm 2013 cho một startup CNTT Ba Lan tên là BugFree Software
    • Năm 2019, công ty ngừng hoạt động và Helium được chuyển sang mã nguồn mở
    • Từng có thể dùng với Java và Python, nhưng hiện tại chỉ còn hỗ trợ Python
    • Tên gọi Helium bắt nguồn từ nguyên tố hóa học giống như Selenium, và mang ý nghĩa nhẹ hơn

1 bình luận

 
GN⁺ 2024-12-13
Bình luận trên Hacker News
  • Nhà sáng lập dự án Selenium cho biết API của Helium giống với API ban đầu của Selenium. Ông nhấn mạnh rằng có nhiều phong cách API tự động hóa khác nhau và không có API nào làm hài lòng tất cả mọi người. Cá nhân ông thích phong cách hàm đơn giản hơn

    • Đây cũng là lý do ông thích 'Uniform Function Call Syntax' của ngôn ngữ lập trình Nim
  • Hầu hết các trình lint Python và tài liệu về best practice đều không khuyến nghị import *. Thay vào đó, có thể dùng ngắn gọn theo kiểu import helium as h

    • Điều này tương tự với cách lách thường được dùng trong tự động hóa trình duyệt bằng Python
    • Theo châm ngôn rằng tường minh tốt hơn hàm ý, có lo ngại rằng lớp trừu tượng như vậy có thể gây vấn đề cho tính dễ đọc
  • Một người từng làm tự động hóa tạm thời bằng Selenium nói rằng API giống ngôn ngữ tự nhiên của Helium hẳn sẽ rất hữu ích

  • Có ý kiến hoài nghi về tuyên bố rằng wrapper của Selenium nhẹ hơn. Wrapper về bản chất sẽ bao gồm nhiều mã và tính năng hơn, chứ không dùng ít tài nguyên hơn hoặc nhanh hơn

    • Nhấn mạnh rằng kiểm thử tự động không thể được giải quyết chỉ bằng một API đẹp, mà cần kỹ thuật phần mềm thực sự để xây dựng tự động hóa bền vững
  • Có người tò mò Helium so với Playwright, Selenium, Cypress và Puppeteer thì như thế nào

  • Bày tỏ sự cảm kích vì đã nỗ lực để Helium không biến mất

  • Có người hỏi liệu có thể khởi động bằng tên profile cụ thể của trình duyệt Chrome hoặc tái sử dụng phiên Firefox/Chrome hiện có hay không

  • Đặt câu hỏi về việc phân biệt tự động hóa với người dùng thật dễ đến mức nào. Nếu dùng web thông qua tự động hóa thì có thể có nguy cơ bị chặn truy cập

  • Có người nói rằng Helium có vẻ có thể dùng để tạo agent flow. Họ quan tâm đến việc tạo một sandbox instance có thể thực hiện các tác vụ như thu thập dữ liệu hoặc trả lời câu hỏi

  • Có người thắc mắc Helium nhận biết trường nhập liệu của người dùng như thế nào. Liệu nó có đọc nhãn rồi giả định thứ nằm bên dưới hoặc bên phải là trường người dùng hay không