🚨 Yaygın Hatalar / Common Errors
Yaygın Hatalar / Common Errors: Selector yanlış yazılmış ya da element o anda DOM'da henüz render edilmemiş — genelde uygulama hâlâ veri yüklerken test elementin oluşmasını "bekl
Selector yanlış yazılmış ya da element o anda DOM'da henüz render edilmemiş — genelde uygulama hâlâ veri yüklerken test elementin oluşmasını "bekliyor" gibi görünür ama 4 saniyelik varsayılan timeout dolar.
Uygulama, OAuth/SSO sağlayıcısı gibi farklı bir üst alan adına (superdomain) yönlendiriyor; Cypress varsayılan olarak tek bir origin'i kontrol eder.
cypress.config.js'teki baseUrl yanlış ya da test başladığında local dev server henüz ayağa kalkmamış.
Dosya cypress/fixtures/ klasöründe yok ya da uzantı/yol yanlış yazılmış.
cy.wait('@alias') çağrıldı ama o alias'a karşılık gelen network isteği hiç atılmadı — genelde intercept'in URL pattern'i gerçek isteğe uymuyor ya da intercept, cy.visit()'ten SONRA tanımlandığı için isteği kaçırdı.
Uygulamadaki (ya da üçüncü parti bir analytics/widget script'indeki) yakalanmamış bir JavaScript hatası, Cypress tarafından otomatik olarak test başarısızlığına çevrilir.
React/Vue gibi framework'ler re-render sırasında elementi DOM'dan kaldırıp yenisini ekler (Selenium'daki StaleElementReferenceException'ın Cypress karşılığı).
Bazı UI kütüphaneleri (chart, data-grid) ResizeObserver kullanır; bu zararsız tarayıcı uyarısı bazen Cypress tarafından uncaught exception olarak yakalanıp testi fail ettirir.
Cypress v12+'ta "test isolation" varsayılan olarak açıktır: her testten önce cookie/localStorage/sessionStorage otomatik temizlenir. Eğer bir test, önceki testin bıraktığı login/state'e güveniyorsa bu testler birlikte çalıştırıldığında kırılır.
cy.fixture() ile alınan obje JavaScript'te referans olarak paylaşılır; bir testte bu objeyi mutate edersen (örn. data.used = true), sıradaki testi etkileyen "kirli" veri kalır.
🎬 "PASS" Diyen Ama Aslında Kirli Veriyle Çalışan Test
Test 1: profil günceller
Test 2: yeni kullanıcı bekler
used: true (sızmış!)