🌐 Selenium WebDriver — Adım Adım Kullanım

Selenium WebDriver — Adım Adım Kullanım: Selenium WebDriver, Java'da yazdığın komutları tarayıcının kendi otomasyon protokolüne (W3C WebDriver) çevirip gerçek bir Chrome/Firefox

Selenium WebDriver, Java'da yazdığın komutları tarayıcının kendi otomasyon protokolüne (W3C WebDriver) çevirip gerçek bir Chrome/Firefox penceresini uzaktan kumanda eden bir sürücüdür — tıpkı bir vinç operatörünün kaldıraç kollarına basması gibi: sen soyut komutu verirsin (`click`, `sendKeys`), sürücü onu tarayıcının anlayacağı fiziksel eyleme dönüştürür. Peki gerçek bir tarayıcı zaten fareyle çalışırken neden Selenium ile programatik olarak sürmek gerekiyor? Çünkü fareyle test etmek yorucu, tekrarlanamaz ve ölçeklenemezdir; Selenium aynı senaryoyu her deploy'da, birden çok tarayıcıda, insan hatası olmadan koşar. Java binding'i Selenium'un en olgunu ve en geniş topluluğa sahip olanıdır; Python binding'i daha kısa yazılır ama Java'nın statik tipi büyük test projelerinde API değişikliklerini derleme zamanında yakalar. QA mühendisi için asıl mesele stabilitedir: Selenium komutlarını doğru wait stratejisiyle birleştirmezsen "element not interactable" gibi zamanlama hataları çıkar ve bunlar flaky test'in bir numaralı kaynağıdır.

Adım 1: Maven Kurulumu

pom.xml — Selenium 4 + WebDriverManager

Micro Lab: Kod yazma

TODO satirini beklenen cozumdeki kritik satirla degistir. Bu gercek runtime degil; amac dogru yapinin yazilmasini kontrollu olarak pekistirmek.

Bu 3 Bağımlılık Olmadan Selenium Kodu Neden Derlenmez?

`selenium-java` ham `WebDriver`/`ChromeDriver` API'sinin KENDİSİDİR — bu olmadan `driver.findElement(...)` gibi hiçbir satır derlenemez.

webdrivermanager test ile…

`webdrivermanager` ` test ` ile işaretlidir — SADECE test derlemesinde bulunur, production jar'ına asla KARIŞMAZ.

WebDriverManager olmadan…

WebDriverManager olmadan, her geliştiricinin ChromeDriver binary'sinin doğru sürümünü ELLE indirip PATH'e eklemesi GEREKİRDİ — versiyon uyuşmazlığı takımda sık bir hata kaynağıdır.

junit-jupiter ayrı bir bağımlılıktır…

`junit-jupiter` ayrı bir bağımlılıktır çünkü Selenium sadece TARAYICI kontrolünden sorumludur — testleri ÇALIŞTIRMAK ve ASSERT etmek tamamen farklı bir kütüphanenin işidir.

Adım 2: Tarayıcı Açma ve Kapatma