8 पॉइंट द्वारा GN⁺ 2024-12-13 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Chrome/Firefox जैसे ब्राउज़र को ऑटोमेट करने के लिए एक Python लाइब्रेरी
  • Helium, Selenium पर आधारित है और एक higher-level API प्रदान करता है
    • Helium स्क्रिप्ट आम तौर पर Selenium स्क्रिप्ट की तुलना में 30-50% छोटी, पढ़ने में आसान और अधिक स्थिर होती हैं
    • Selenium में HTML ID, XPath, CSS selectors का उपयोग करना पड़ता है, लेकिन Helium में यूज़र को दिखने वाले labels से elements को refer किया जा सकता है
    • Helium और Selenium को मिलाकर इस्तेमाल किया जा सकता है
  • Helium के फायदे
    • iFrames: Helium nested iFrame के अंदर मौजूद elements के साथ interact कर सकता है
    • विंडो मैनेजमेंट: popup window को अपने आप detect करके focus करता है; आसानी से switch किया जा सकता है
    • implicit wait: अगर किसी खास element के load होने से पहले click किया जाए, तो उसके दिखाई देने तक डिफ़ॉल्ट रूप से 10 सेकंड तक इंतज़ार करता है (Selenium में स्क्रिप्ट fail हो जाती है)
    • explicit wait: condition पूरी होने तक wait करने के लिए बेहतर API प्रदान करता है
  • फिलहाल प्रोजेक्ट मेंटेनेंस के लिए समय की कमी होने के कारण मुफ्त सपोर्ट नहीं दिया जा रहा है
    • PR स्वीकार किए जाते हैं, और योगदान का स्वागत है
  • इतिहास
    • Helium को 2013 में BugFree Software नामक एक Polish IT startup के लिए विकसित किया गया था
    • 2019 में कंपनी बंद हो गई, और Helium को open source में बदल दिया गया
    • पहले यह Java और Python में उपलब्ध था, लेकिन अब केवल Python को सपोर्ट करता है
    • Helium नाम, Selenium की तरह एक chemical element से लिया गया है, और इसका अर्थ है अधिक हल्का होना

1 टिप्पणियां

 
GN⁺ 2024-12-13
Hacker News टिप्पणियाँ
  • Selenium प्रोजेक्ट के संस्थापक ने उल्लेख किया कि Helium का API, Selenium के शुरुआती API से मिलता-जुलता है। उन्होंने ज़ोर दिया कि ऑटोमेशन API की कई शैलियाँ मौजूद हैं और ऐसा कोई API नहीं है जो सभी को संतुष्ट कर सके। व्यक्तिगत रूप से वे सरल functional style को पसंद करते हैं

    • उसी संदर्भ में उन्हें Nim प्रोग्रामिंग भाषा का 'Uniform Function Call Syntax' भी पसंद है
  • ज़्यादातर Python linters और best practices दस्तावेज़ import * की सिफारिश नहीं करते। इसके बजाय import helium as h जैसे तरीके से इसे संक्षेप में इस्तेमाल किया जा सकता है

    • यह Python-आधारित browser automation में आम तौर पर इस्तेमाल होने वाले workaround जैसा है
    • "explicit is better than implicit" वाली कहावत के अनुसार, पठनीयता के लिए इस तरह की layers समस्या पैदा कर सकती हैं, ऐसी चिंता जताई गई
  • Selenium के साथ ad-hoc automation का अनुभव रखने वाले एक उपयोगकर्ता ने कहा कि Helium का प्राकृतिक भाषा जैसा API उनके लिए उपयोगी होता

  • Selenium wrapper के अधिक हल्का होने के दावे पर सवाल उठाया गया। wrapper मूल रूप से अधिक code और features शामिल करता है, इसलिए यह कम resource इस्तेमाल नहीं करता और न ही तेज़ होता है

    • इस बात पर ज़ोर दिया गया कि automation testing सिर्फ़ एक अच्छे API से हल नहीं होती, बल्कि टिकाऊ automation के लिए वास्तविक software engineering की ज़रूरत होती है
  • यह जानने की जिज्ञासा जताई गई कि Helium की तुलना Playwright, Selenium, Cypress, और Puppeteer से कैसे होती है

  • Helium को गायब न होने देने के लिए किए गए प्रयासों के प्रति आभार व्यक्त किया गया

  • यह पूछा गया कि क्या किसी विशेष Chrome browser profile नाम के साथ शुरू किया जा सकता है, या मौजूदा Firefox/Chrome session को दोबारा इस्तेमाल किया जा सकता है

  • इस पर सवाल उठाया गया कि automation को वास्तविक उपयोगकर्ता से अलग पहचानना कितना आसान है। अगर web को automation के ज़रिए इस्तेमाल किया जाए, तो access block होने का जोखिम हो सकता है

  • उल्लेख किया गया कि Helium का उपयोग करके agent flow बनाए जा सकते हैं। डेटा इकट्ठा करने या सवालों के जवाब देने वाले sandbox instance बनाने में रुचि जताई गई

  • यह जानने की जिज्ञासा जताई गई कि Helium user fields को कैसे पहचानता है। क्या वह labels पढ़कर उनके नीचे या दाईं ओर मौजूद चीज़ को user field मान लेता है, इस पर सवाल उठाया गया