Ana içeriğe geç

Selenium

Okunuşu
selenyum
Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/selenium

Kısaca

Selenium, çoğunlukla uçtan uca test için web tarayıcılarını otomatikleştiren, WebDriver API'si birçok dilde bulunan açık kaynaklı bir araç takımıdır.

Selenium nedir?

Selenium, 2004'te ThoughtWorks'te, Jason Huggins'in bir web uygulamasının tekrarlı testlerini otomatikleştirmek için yazdığı bir araçla başladı. Bugün çekirdeği WebDriver'dır: Chrome, Firefox, Safari ve Edge dahil gerçek tarayıcıları her tarayıcının kendi sürücüsü üzerinden kontrol eden bir API. WebDriver protokolü 2018'de bir W3C standardı oldu; bu yüzden tarayıcı üreticileri onu doğrudan uygular.

Testler Java, Python, C#, JavaScript, Ruby ve başka dillerde yazılabilir; bu da Selenium'u ana dili JavaScript olmayan ekiplerde popüler yapar. Bir test bir sayfa açar, öğeleri ID, CSS seçici ya da XPath ile bulur, tıklar, yazar ve görüneni doğrular. Selenium Grid testleri birçok makinede ve tarayıcı sürümünde paralel çalıştırır, Selenium IDE de tarayıcı eylemlerini kaydedip yeniden oynatır.

Uzun geçmişi, çok sayıda mevcut test takımı, her CI sistemi ve bulut test servisiyle entegrasyon ve bol miktarda dokümantasyon demektir. Birçok ticari test platformu da altında Selenium ve WebDriver üzerine kuruludur.

Sık yapılan bir yanlış, Selenium testlerinin doğası gereği kararsız (flaky) olduğunu düşünmektir. Kararsızlık genellikle sayfayı doğru beklemeyen, öğelerin görünmesini açıkça beklemek yerine sabit uyumalar (sleep) kullanan testlerden gelir. Playwright ve Cypress gibi yeni araçlar otomatik bekler; bu, birçok yeni projenin onları seçmesinin büyük bir nedenidir; ama iyi yazılmış Selenium test takımları da aynı ölçüde güvenilir olabilir.

Önemli noktalar

  • Selenium gerçek web tarayıcılarını, çoğunlukla uçtan uca testler için otomatikleştirir.
  • 2004'te başladı; WebDriver 2018'de bir W3C standardı oldu.
  • Testler Java, Python, C#, JavaScript, Ruby ve daha fazlasında yazılabilir.
  • Selenium Grid testleri tarayıcılar ve makineler arasında paralel çalıştırır.
  • Sabit uyumalar değil açık beklemeler Selenium testlerini güvenilir tutar.

Örnek

Selenium WebDriver ile bir giriş testi (Python)python
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
try:
    driver.get("https://staging.example.com/login")
    driver.find_element(By.ID, "email").send_keys("ada@example.com")
    driver.find_element(By.ID, "password").send_keys("correct horse")
    driver.find_element(By.CSS_SELECTOR, "button[type=submit]").click()

    # Explicit wait instead of time.sleep(): wait until the heading appears
    heading = WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.TAG_NAME, "h1")))
    assert "Dashboard" in heading.text
finally:
    driver.quit()

Sık sorulan sorular

Selenium ile Playwright arasındaki fark nedir?

Selenium daha eskidir, birçok dili destekler ve standart WebDriver protokolünü kullanır. Playwright daha yenidir, tarayıcıları hata ayıklama protokolleri üzerinden kontrol eder, otomatik bekler ve izleme (tracing) ile paralel çalıştırmayı kutudan çıktığı gibi sunar. İkisi de gerçek tarayıcıları test eder.

Selenium WebDriver nedir?

Selenium'un ana parçasıdır: bir tarayıcıyı programla kontrol etmeye, sayfaları açmaya, öğeleri bulmaya ve tıklama ile yazma gibi kullanıcı eylemlerini taklit etmeye yarayan bir API ve protokol.

Selenium Grid nedir?

Selenium testlerini, testlerden gelen komutları tarayıcı düğümlerine dağıtan bir merkeze (hub) göndererek birçok makinede ve tarayıcıda paralel çalıştırmanın bir yoludur.

İlgili sayfalar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar