🖱️ Temel Aksiyonlar — Selenium ile Karşılaştırma

Temel Aksiyonlar — Selenium ile: Playwright aksiyonları, bir GPS navigasyon sisteminin "dörtlü onay katmanı" gibi çalışır: adres girilir, sistem rotayı hesaplar, aracın ilerleyip

Playwright aksiyonları, bir GPS navigasyon sisteminin "dörtlü onay katmanı" gibi çalışır: adres girilir, sistem rotayı hesaplar, aracın ilerleyip ilerlemediğini kontrol eder ve hedefe ulaşılınca seni uyarır — her adımda bekleme ve doğrulama otomatiktir. Peki Selenium'da neden bu kadar çok bekleme kodu yazmak gerekiyordu? Selenium, bir taksimetre gibi sadece komutu iletir ve sonucu beklemez; element DOM'a girmiş ama henüz etkileşilebilir değilse "element not interactable" hatası alırsın ve tüm sorumluluğu sana bırakır. Java'da driver.findElement(By.id("btn")).click() yazdığında, element DOM'da var ama görünmüyor veya disabled ise test çöker; Playwright'ta page.locator("#btn").click() yazarsın ve Playwright element hem görünene hem enabled olana hem de stable konuma gelene kadar kendi kendine bekler. QA gerçeği şu: SPA (Single Page Application) testlerinde bir butona tıkladıktan sonra API yanıtı beklenmeden başka bir aksiyona geçilince "yarış koşulları" (race condition) oluşur ve test bazen geçer bazen geçmez; Playwright'ın built-in actionability kontrolleri bu belirsizliği ortadan kaldırır.

Tüm Aksiyonlar — 3 Dil Karşılaştırması

Detaylı Kod Örnekleri

Micro Lab: Playwright — Locator secimi

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

fill() Tek Satırda Aslında Kaç Adım Yapar?

page.locator('#email') elementi bulur…

page.locator('#email') elementi bulur ama henüz dokunmaz — Playwright locator'ı "lazy" tutar, gerçek arama fill() çağrılana kadar ertelenir.

fill() önce actionability kontrolü yapar…

fill() önce actionability kontrolü yapar: element DOM'da mı, görünür mü, disabled değil mi, animasyon bitmiş mi — bunlardan biri eksikse Playwright BEKLER, hemen hata FIRLATMAZ.

Mevcut input değeri TAMAMEN temizlenir…

Mevcut input değeri TAMAMEN temizlenir — Selenium'daki sendKeys() bunu yapmaz, önceki değerin sonuna ekler; bu yüzden Selenium'da her zaman önce .clear() çağırman gerekiyordu.

Yeni metin tek seferde input'a yazılır…

Yeni metin tek seferde input'a yazılır ve gerçek bir "input" DOM event'i tetiklenir — React/Vue gibi framework'lerin state'i bu event sayesinde güncellenir, sadece value attribute'ini değiştirmek yetmez.