⏳ Bekleme Mekanizmaları (Wait)

Bekleme Mekanizmaları (Wait): Playwright'ın bekleme sistemi, modern bir akıllı trafik ışığı gibi çalışır: ışık sabit bir süre değil, sensörden gelen araç yoğunluğuna göre dinamik

Playwright'ın bekleme sistemi, modern bir akıllı trafik ışığı gibi çalışır: ışık sabit bir süre değil, sensörden gelen araç yoğunluğuna göre dinamik olarak açılır — koşul oluştuğunda geçilir, oluşmamışsa beklenir. Peki Selenium'da neden bunca elle bekleme kodu yazılırdı? Selenium, eski nesil mekanik bir zamanlayıcı gibidir: zaman sona erince beklemesi biter, element hazır olsa da olmasa da; hazır olsa bile zaman dolmamışsa bekler. Bu yüzden Java'da WebDriverWait(driver, Duration.ofSeconds(10)).until(ExpectedConditions.elementToBeClickable(By.id("btn"))) yazmak zorundaydın — her element için, her testte tekrarlayarak. Playwright'ta page.locator("#btn").click() bu bekleme mantığını içinde taşır: element görünene, enabled olana, viewport'a girene ve stable konuma gelene kadar otomatik bekler, maksimum timeout aşılırsa açık bir hata mesajıyla patlar. QA gerçeği: bekleme süresini sabit yazan testler, geliştirme ortamında yeşil yanan ama yavaş CI pipeline'ında kırmızı yanan klasik "works on my machine" sorununu üretir. Playwright'ın event-driven bekleme sistemi bu farkı ortadan kaldırır.

Auto-Wait — Playwright'ın Süper Gücü

click(), fill(), check() gibi TÜM aksiyonlar çağrılmadan önce Playwright şunu kontrol eder: Element DOM'da var mı? Görünür mü? Tıklanabilir mi? Stabil mi? (DOM değişiyor mu?) Hepsi hazır olunca aksiyon yapılır. Timeout aşılırsa TimeoutError fırlatır.

Micro Lab: Playwright — Locator secimi

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

Adim Adim: Playwright — Locator secimi

Once getByRole, getByLabel, getByPlaceholder gibi semantic locator dene

Semantic bulamazsan getByText veya getByTestId kullan

CSS/XPath gerekiyorsa page.locator("css") veya page.locator("xpath=...") yaz

await expect(locator).toBeVisible() ile locatorin calistigini dogrula

Birden fazla element eslesiryorsa .first() / .nth() / .filter() ile daralt

Playwright locator secimi ve dogrulama sirasi nedir?

Auto-Wait — Playwright Aksiyondan Önce Ne Kontrol Eder?

"▶ Butona Tıkla" → Playwright tıklamadan önce 5 actionability check'i sırayla yapar. Tüm checkler yeşil olunca gerçek tıklama gerçekleşir. Sağda hangi check'in şu an yapıldığını izle.