🖱️ Temel Komutlar & Selector Stratejisi
Temel Komutlar & Selector Stratejisi: Cypress'te her komut cy ile başlar ve bir Promise benzeri ama "chainable" (zincirlenebilir) nesne döndürür.
Cypress'te her komut cy ile başlar ve bir Promise benzeri ama "chainable" (zincirlenebilir) nesne döndürür. cy.visit() sayfaya gider, cy.get() CSS selector ile element bulur, cy.contains() ise görünür metne göre arar. Bu komutlar senkron gibi YAZILIR ama arka planda asenkron ve retry-ability'lidir — yani await/async yazmana gerek yoktur, Cypress kuyruğu kendi yönetir.
Micro Lab: Cypress — cy.get() secimi
TODO satirini beklenen cozumdeki kritik satirla degistir. Bu gercek runtime degil; amac dogru yapinin yazilmasini kontrollu olarak pekistirmek.
Adim Adim: Cypress — cy.get() secimi
data-cy attribute var mi kontrol et — varsa cy.get("[data-cy=btn]") kullan
data-cy yoksa cy.get("#id") veya cy.get(".class") yaz
Metin icerigi onemse cy.contains("Giris Yap") veya .contains() zincirle
Ic iceye yapi gerekiyorsa .find("button") ile cocuk elementi ara
Assertion: .should("be.visible"), .should("have.text", "...")
Cypress ile element secme ve zincir kurma sirasi nedir?
Explicit wait yazman gerekir, yoksa StaleElementReferenceException riski var.
Cypress (JavaScript)
Element DOM'a gelene ve tıklanabilir olana kadar cy.get()+click() otomatik bekler.
Selenium'da findElement() "anlık" bir sorgudur — element o anda DOM'da yoksa hemen patlar. Cypress'in cy.get() komutu ise "sabırlıdır": elementi bulana kadar (varsayılan defaultCommandTimeout: 4000ms) arka planda tekrar tekrar dener.