8 puan yazan GN⁺ 2024-12-13 | 1 yorum | WhatsApp'ta paylaş
  • Chrome/Firefox gibi tarayıcıları otomatikleştirmek için bir Python kütüphanesi
  • Helium, Selenium tabanlıdır ve daha yüksek seviyeli bir API sunar
    • Helium betikleri genellikle Selenium betiklerinden %30-50 daha kısadır; daha okunabilir ve daha kararlıdır
    • Selenium'da HTML ID, XPath, CSS seçicileri kullanmak gerekirken, Helium'da öğelere kullanıcıya görünen etiketlerle başvurulabilir
    • Helium ve Selenium birlikte kullanılabilir
  • Helium'un avantajları
    • iFrames: Helium, iç içe geçmiş iFrame'lerin içindeki öğelerle etkileşime girebilir.
    • Pencere yönetimi: Açılır pencereleri otomatik olarak algılar ve odağı onlara getirir. Kolayca geçiş yapılabilir
    • Örtük bekleme: Belirli bir öğe henüz yüklenmeden tıklanmaya çalışılırsa, görünene kadar varsayılan olarak 10 saniyeye kadar bekler (Selenium'da betik başarısız olur)
    • Açık bekleme: Koşul karşılanana kadar beklemek için daha iyi bir API sunar.
  • Şu anda proje bakımına zaman ayrılamadığı için ücretsiz destek verilmiyor
    • PR'ler kabul ediliyor ve katkılar memnuniyetle karşılanıyor.
  • Geçmiş
    • Helium, 2013'te Polonyalı bir BT girişimi olan BugFree Software için geliştirildi
    • 2019'da şirket kapandı ve Helium açık kaynak haline getirildi
    • Java ve Python'da kullanılabiliyordu, ancak artık yalnızca Python destekleniyor
    • Helium adı, Selenium gibi bir kimyasal elementten gelir ve daha hafif olmasını ifade eder

1 yorum

 
GN⁺ 2024-12-13
Hacker News görüşleri
  • Selenium projesinin kurucusu, Helium'un API'sinin Selenium'un ilk API'sine benzediğini belirtiyor. Farklı otomasyon API stilleri var ve herkesi memnun edecek tek bir API olmadığını vurguluyor. Kişisel olarak basit, fonksiyonel tarzı tercih ettiğini söylüyor

    • Nim programlama dilindeki 'Uniform Function Call Syntax'ı sevmesinin nedeni de aynı bağlamda
  • Çoğu Python linter'ı ve en iyi uygulama dokümanı import * kullanımını önermez. Bunun yerine import helium as h gibi bir kullanımın yeterince kısa olduğu belirtiliyor

    • Bu, Python tabanlı tarayıcı otomasyonunda yaygın olarak kullanılan geçici çözümlere benziyor
    • “Açık olan, örtük olandan iyidir” özdeyişine uygun olarak, okunabilirlik adına bu tür katmanların sorun çıkarabileceği konusunda endişe dile getiriliyor
  • Selenium ile geçici otomasyon yapmış bir kullanıcı, Helium'un doğal dile benzeyen API'sinin faydalı olacağını söylüyor

  • Selenium için bir wrapper'ın daha hafif olduğu iddiası sorgulanıyor. Wrapper'lar doğası gereği daha fazla kod ve özellik içerir; daha az kaynak kullanmaz veya daha hızlı olmaz

    • Otomasyon testlerinin şık bir API ile çözülmediği, sürdürülebilir otomasyon için gerçek yazılım mühendisliği gerektiği vurgulanıyor
  • Helium'un Playwright, Selenium, Cypress ve Puppeteer ile nasıl karşılaştırıldığı merak ediliyor

  • Helium'un ortadan kaybolmaması için gösterilen çaba takdir ediliyor

  • Belirli bir Chrome tarayıcı profil adıyla başlatmanın veya mevcut Firefox/Chrome oturumunu yeniden kullanmanın mümkün olup olmadığı soruluyor

  • Otomasyonun gerçek bir kullanıcıdan ayırt edilmesinin ne kadar kolay olduğu sorgulanıyor. Otomasyonla web kullanıldığında erişimin engellenme riski olabileceği belirtiliyor

  • Helium kullanılarak ajan akışları oluşturulabileceği söyleniyor. Veri toplama veya soruları yanıtlama işleri yapabilecek sandbox instance'ları oluşturmaya ilgi duyuluyor

  • Helium'un kullanıcı alanlarını nasıl tanıdığı merak ediliyor. Etiketleri okuyup altındaki veya sağındaki öğeyi kullanıcı alanı olarak varsayıp varsaymadığı soruluyor