⚡ Aksiyonlar — Tüm Kullanıcı Eylemleri

Aksiyonlar — Tüm Kullanıcı Eylemleri: Selenium'daki Actions API, Java'daki Builder pattern'in tarayıcı eylemleri için uygulamasıdır: tek tek komut göndermek yerine bir dizi harek

Selenium'daki Actions API, Java'daki Builder pattern'in tarayıcı eylemleri için uygulamasıdır: tek tek komut göndermek yerine bir dizi hareketi zincire ekleyip tek seferde `.perform()` ile çalıştırırsın — tıpkı StringBuilder'a append edip sonunda toString() çağırmak gibi. Peki basit element.click() varken neden ayrıca Actions API'ye ihtiyaç var? Çünkü bazı UI bileşenleri gerçek mouse olaylarına (mouseover, mousedown, mouseup) tepki verir — sadece click event'ine değil; tooltip'lerin açılması, drag-and-drop widget'ları ve context menu'ler bu kategoridedir. element.click() ise tarayıcıya "tıklamış gibi davran" demek olup eksik mouse event'lerini tetiklemez. Java'da Actions actions = new Actions(driver) ile başlattığın zincir Python'da ActionChains ve TypeScript Playwright'ta page.mouse olarak karşına çıkar; kavram aynıdır. QA açısından en sık gözden kaçan senaryo şudur: drag-and-drop testi element.click() ile yazıldığında lokal ortamda "çalışıyor" gibi görünür ama staging'de gerçek JavaScript event listener'ları devreye girer ve test sessizce yanlış PASS verir.

1. Temel Aksiyonlar (Click, Type, Clear, Submit)

Java — Temel Aksiyonlar

Micro Lab: Selenium — Locator secimi

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

Adım Adım: isDisplayed/isEnabled/isSelected Neyi Sorar?

isDisplayed() render durumunu sorar

Element DOM'da VAR olsa bile `display:none` veya `visibility:hidden` ise `isDisplayed()` FALSE döner — varlık ile görünürlük FARKLI şeylerdir.

isEnabled() etkileşim durumunu sorar

Bir buton görünür OLABİLİR ama `disabled` attribute'u varsa `isEnabled()` FALSE döner — click() çağrılsa bile hiçbir şey OLMAZ.

isSelected() sadece belirli tiplerde anlamlıdır

Checkbox, radio ve option elementleri için "işaretli mi?" sorusuna cevap verir — bir ` ` için her zaman FALSE döner.

Neden bu üçü BİRLİKTE kontrol edilir?

Production'da bir submit butonuna tıklamadan ÖNCE bu üç kontrolü yapmak, "buton var ama disabled" gibi sessiz hataları test ASSERTION'ına dönüştürür.