iToverDose/Yazılım· 25 NISAN 2026 · 00:05

Python ile Selenium Test Otomasyonu: Uygulamaya Yönelik Kılavuz

Günlük test otomasyonunda en çok kullanılan Selenium + Python kodlarına hızlı bir başvuru rehberi. Tüm pratik örnekler, yerleşik bileşenler ve Pytest entegrasyonu ile projelerinize kolayca uygulayabileceğiniz stratejiler sunuyoruz.

DEV Community3 dk okuma0 Yorumlar

Günümüzün hızla gelişen yazılım dünyasında, manuel testler artık yeterli değil. Özellikle kullanıcı arayüzü yoğun projelerde, Selenium gibi araçlarla otomatik testler oluşturmak, hem zaman kazandırıyor hem de hata oranlarını önemli ölçüde düşürüyor. Python programlama dilinin esnekliği sayesinde, Selenium komutlarını daha anlaşılır ve sürdürülebilir şekilde yazabiliyorsunuz. Bu kılavuzda, gerçek dünya senaryolarında en sık karşılaşılan işlemler için pratik çözümler ve en iyi uygulamalar paylaşacağız.

Selenium Kurulumu ve Tarayıcı Başlatma

Python tabanlı test otomasyonunda ilk adım, Selenium kütüphanesinin sisteminize kurulmasıdır. Terminalden aşağıdaki komutu çalıştırarak gerekli paketi yükleyebilirsiniz:

pip install selenium

Ardından, kullanmak istediğiniz tarayıcıya ait WebDriver'ı sistem yoluna eklemeniz gerekiyor. Örneğin:

  • Google Chrome için chromedriver
  • Mozilla Firefox için geckodriver
  • Microsoft Edge için msedgedriver

Tarayıcıyı Python ortamında başlatmak için temel bir komut şu şekildedir:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get(")

CI/CD ortamlarında testleri arka planda çalıştırmak için headless modunu tercih etmek yaygındır. Bu sayede tarayıcı arayüzü görünmeden işlemler gerçekleştirilebilir. Aşağıdaki kod parçası, Chrome tarayıcısını headless modunda başlatır:

from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument("--headless")
options.add_argument("--window-size=1920,1080")

driver = webdriver.Chrome(options=options)

Web Elementleri Bulma ve Etkileşim Kurma

Test otomasyonunda en kritik adımlardan biri, web sayfalarındaki elementleri doğru şekilde bulmaktır. Stabil olmayan yer bulucular kullanmak, testlerinizin sık sık bozulmasına neden olabilir. Bu nedenle, mümkün olduğunca güvenilir yöntemlere yönelmek önem taşıyor.

Python ile Selenium kullanarak elementleri bulmanın en yaygın yolları şunlardır:

  • ID kullanarak: driver.find_element(By.ID, "submit")
  • İsme göre: driver.find_element(By.NAME, "email")
  • CSS Seçicisiyle: driver.find_element(By.CSS_SELECTOR, ".login-button") ya da driver.find_element(By.CSS_SELECTOR, "input[type='password']")

XPath kullanımı, bazı durumlarda kaçınılmaz olsa da, genellikle daha karmaşık ve bakımı zor olduğu için son çare olarak tercih edilmelidir. Örneğin:

driver.find_element(By.XPATH, "//button[text()='Login']")

Elementlerle etkileşim kurmak içinse aşağıdaki komutlar sıklıkla kullanılır:

  • element.click() – Tıklama işlemi
  • element.send_keys("user@example.com") – Metin girişi
  • element.clear() – Alanı temizleme
  • element.text – Metin değeri okuma
  • element.get_attribute("value") – Belirli bir niteliği okuma

Beklemeler ve Doğru Zamanlama Stratejileri

Test otomasyonunda karşılaşılan en yaygın sorunlardan biri, elementlerin henüz yüklenmemiş olmasıdır. Bu durumda, sabit beklemeler (time.sleep(5)) kullanmak, testlerinize istikrarsızlık katabilir. Bunun yerine, açık beklemeler tercih edilmelidir.

Python ile Selenium'da açık bekleme uygulamak için şu adımları izleyebilirsiniz:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

wait = WebDriverWait(driver, 10)  # En fazla 10 saniye bekle
login_btn = wait.until(
    EC.element_to_be_clickable((By.ID, "login"))
)

Sık kullanılan bekleme koşulları arasında şunlar bulunur:

  • EC.presence_of_element_located – Elementin DOM'da bulunması
  • EC.visibility_of_element_located – Elementin görünür olması
  • EC.element_to_be_clickable – Elementin tıklanabilir duruma gelmesi

Formlar, Düşme Kutuları ve Diğer Özel Bileşenler

Web formlarıyla çalışırken, özellikle seçim kutuları ve açılır listelerle etkileşim önem kazanır. Python'daki Selenium kütüphanesi, bu bileşenleri yönetmek için özel yöntemler sunar. Örneğin, bir seçim listesini yönetmek için aşağıdaki kodu kullanabilirsiniz:

from selenium.webdriver.support.ui import Select

dropdown = Select(driver.find_element(By.ID, "country"))
dropdown.select_by_visible_text("Türkiye")

Uyarı pencereleri (alerts), iframe'ler ve yeni pencerelerle çalışırkense, Selenium'un sağladığı geçiş mekanizmalarını kullanmanız gerekiyor. Örneğin:

  • Uyarı penceresi: alert = driver.switch_to.alert ve ardından alert.accept()
  • İframe geçişi: driver.switch_to.frame("frameName") ve ardından driver.switch_to.default_content()
  • Yeni pencereye geçiş: driver.switch_to.window(driver.window_handles[1])

Test Raporları ve CI/CD Entegrasyonu

Otomatik testlerinizin başarısını ölçmek ve hata durumlarını analiz etmek için görsel raporlama büyük önem taşır. Pytest, HTML formatında detaylı test raporları oluşturmanıza olanak tanır. Raporlama için gerekli paketi şu komutla yükleyebilirsiniz:

pip install pytest-html

Ardından, testlerinizi çalıştırırken aşağıdaki parametreyi ekleyerek raporu oluşturabilirsiniz:

pytest --html=report.html

Bu raporlar, hem geliştiriciler hem de test mühendisleri tarafından, testlerin başarısını ve iyileştirme alanlarını belirlemek amacıyla kullanılabilir. Ayrıca, CI/CD boru hatlarında otomatik olarak yayınlanarak sürekli entegrasyon süreçlerinin bir parçası haline gelebilir.

Sonuç: Verimli ve Ölçeklenebilir Test Otomasyonuna Doğru

Python ile Selenium kullanarak test otomasyonu oluşturmak, özellikle ekip çalışmalarında büyük avantajlar sağlar. Doğru yer bulucular seçmek, açık beklemeler kullanmak ve Page Object Model gibi tasarım kalıplarını uygulamak, testlerinizin bakımını kolaylaştırır ve ölçeklenebilirliğini artırır. Ayrıca, Pytest gibi test çerçeveleriyle entegrasyon yapmak, testlerinizi daha organize ve okunabilir hale getirir.

Gelecekte, test otomasyonunun sadece manuel kontrolleri değil, aynı zamanda performans ve güvenlik testlerini de kapsayacak şekilde genişlemesi bekleniyor. Bu alanda sürekli öğrenmeye ve en iyi uygulamaları takip etmeye devam etmek, hem bireysel kariyer gelişiminiz hem de takımınızın başarısı için kritik önem taşıyor.

Yapay zeka özeti

Günlük test otomasyonunda en sık kullanılan Selenium + Python senaryolarını keşfedin. Kurulumdan raporlamaya kadar tüm adımları öğrenin ve projelerinizde uygulayın.

Yorumlar

00
YORUM BIRAK
ID #BR4PYM

0 / 1200 KARAKTER

İnsan doğrulaması

3 + 7 = ?

Editör onayı sonrası yayına girer

Moderasyon · Spam koruması aktif

Henüz onaylı yorum yok. İlk yorumu sen bırak.