İçeriğe geç

Selenium Alert Kullanımı

Web uygulamalarında sıkça karşımıza çıkan JavaScript Alert pencereleri, kullanıcıdan bilgi almak veya bir uyarı göstermek için kullanılır.
Selenium, bu tür pop-up’larla Alert arayüzü üzerinden etkileşim sağlar.


  1. Simple Alert (Basit Uyarı)
    Sadece bir “OK” butonu içerir.

  2. Confirmation Alert (Onay Uyarısı)
    “OK” ve “Cancel” butonları bulunur.

  3. Prompt Alert (Girdi Alanı Olan Uyarı)
    Kullanıcıdan veri alabilen metin kutusu içerir.


Selenium’da alert penceresine erişmek için:

Alert alert = driver.switchTo().alert();

Bu komut, mevcut aktif alert penceresine geçiş yapar.
Daha sonra aşağıdaki metotlar kullanılabilir:

MetotAçıklama
accept()OK butonuna tıklar
dismiss()Cancel butonuna tıklar
getText()Alert üzerindeki mesajı döner
sendKeys("veri")Prompt alert’e metin gönderir

import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class SimpleAlertExample {
public static void main(String[] args) {
WebDriver driver = new ChromeDriver();
driver.get("https://the-internet.herokuapp.com/javascript_alerts");
// Alert tetikleyen butona tıklama
driver.findElement(By.xpath("//button[text()='Click for JS Alert']")).click();
// Alert’e geçiş yap
Alert alert = driver.switchTo().alert();
// Alert mesajını al ve yazdır
System.out.println("Alert Mesajı: " + alert.getText());
// OK butonuna tıkla
alert.accept();
driver.quit();
}
}

🧪 Örnek 2: Confirmation Alert (OK & Cancel)

Section titled “🧪 Örnek 2: Confirmation Alert (OK & Cancel)”
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class ConfirmationAlertExample {
public static void main(String[] args) {
WebDriver driver = new ChromeDriver();
driver.get("https://the-internet.herokuapp.com/javascript_alerts");
driver.findElement(By.xpath("//button[text()='Click for JS Confirm']")).click();
Alert alert = driver.switchTo().alert();
System.out.println("Alert Mesajı: " + alert.getText());
// İptal Et
alert.dismiss();
driver.quit();
}
}

🧪 Örnek 3: Prompt Alert (Veri Girişi)

Section titled “🧪 Örnek 3: Prompt Alert (Veri Girişi)”
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class PromptAlertExample {
public static void main(String[] args) {
WebDriver driver = new ChromeDriver();
driver.get("https://the-internet.herokuapp.com/javascript_alerts");
driver.findElement(By.xpath("//button[text()='Click for JS Prompt']")).click();
Alert alert = driver.switchTo().alert();
// Alert’e metin gönder
alert.sendKeys("Selenium Test");
// Onayla
alert.accept();
driver.quit();
}
}

Eğer alert görünmeden önce işlem yapılırsa Selenium şu hatayı verir:

org.openqa.selenium.NoAlertPresentException: no such alert

Bu nedenle, alert’in gerçekten görüntülendiğinden emin olun veya kısa bir bekleme ekleyin:

WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(5));
wait.until(ExpectedConditions.alertIsPresent());
Alert alert = driver.switchTo().alert();

💡 İpucu: Alert’leri Testlerde Yönetmek

Section titled “💡 İpucu: Alert’leri Testlerde Yönetmek”

Testlerde alert’lerle etkileşimi otomatikleştirirken:

  • Alert’in hangi koşulda oluştuğunu kontrol edin.
  • Gerekirse bekleme koşulları (explicit wait) kullanın.
  • Her zaman driver.switchTo().defaultContent() ile normal sayfaya geri dönün.

Selenium’da alert’lerle çalışmak, web otomasyon testlerinde kullanıcı etkileşimlerini doğrulamanın önemli bir parçasıdır.
Alert arayüzü ile okuma, onaylama, iptal etme ve veri girme işlemleri kolayca yapılabilir.