Uyarılar ve Açılır Pencereler Nasıl Ele Alınır? Selenium?

⚡ Akıllı Özet

Bildirimler ve açılır pencereler Selenium vardır JavaOtomasyon akışını engelleyen komut dosyası iletişim kutuları ve alt pencereler. Bu makale, basit, istem ve onay uyarılarını nasıl tanımlayacağınızı, WebDriver ile bunlara nasıl geçiş yapacağınızı ve getWindowHandles() kullanarak birden fazla pencereyi nasıl yöneteceğinizi açıklamaktadır.

  • 🔔 Temel Tanım: A Selenium uyarı bir JavaSayfanın üstünde görüntülenen ve sonraki işlemlerden önce ele alınması gereken komut dosyası iletişim kutusu.
  • 🗂️ Üç Uyarı Türü: Basit (bilgi), İstemi (metin girişi) ve Onay (Evet/Hayır) seçeneklerinin her biri farklı WebDriver çağrıları gerektirir.
  • Uyarı API'si: İletişim kutusuyla etkileşim kurmak için `accept()`, `dismiss()`, `getText()` ve `sendKeys()` işlevleriyle birlikte `driver.switchTo().alert()` kullanın.
  • 🪟 Pencere Kullanımı: getWindowHandle() geçerli pencere kimliğini döndürür; getWindowHandles() ise geçiş için tam Kümeyi döndürür.
  • ???? Selenium 4 Not: Selenium Yönetici, sürücüleri otomatik olarak çözerek, chromedriver.exe yollarının sabit kodlanmasına gerek kalmamasını sağlar.
  • 🤖 Yapay Zeka Yardımı: Yapay zekâ ajanları, konum bilgisine dayalı uyarı ve pencere komut dosyaları oluşturarak test paketlerindeki manuel yapılandırmayı azaltır.

Uyarılar ve Açılır Pencereler Nasıl Ele Alınır? Selenium

Uyarı nedir? Selenium?

An Uyarı girişi Selenium Küçük JavaEkran üzerinde beliren ve kullanıcıya bilgi veya bildirim sağlayan komut dosyası iletişim kutusu. Belirli bir işlemi onaylayabilir, bir işlemi gerçekleştirmek için izin isteyebilir veya bir uyarı mesajı gösterebilir.

Bu eğitimde, açılır pencereleri nasıl yöneteceğinizi öğreneceksiniz. Selenium ve web uygulamasında bulunan farklı uyarı türleri test yapmakAyrıca bir uyarıyı nasıl ele alacağımızı da göreceğiz. Selenium WebDriver ve uyarı türüne bağlı olarak nasıl kabul edileceği veya reddedileceği.

Uyarı Türleri Selenium

JavaBu komut dosyası üç uyarı iletişim kutusu gösterir. Selenium Farklı şekilde ele alınmalı.

1) Simple Alert

Basit uyarı, ekranda bilgi veya bir uyarı görüntüler. Kullanıcı bunu yalnızca tıklayarak onaylayabilir. OK.

Tarayıcıda basit uyarı iletişim kutusu örneği

2) Prompt Alert

Bu uyarı mesajı kullanıcıdan girdi ister. Selenium WebDriver, bunun içine şu şekilde yazabilir: sendKeys("input...").

Giriş alanı içeren uyarı iletişim kutusu

3) Confirmation Alert

Onay uyarısı, kullanıcıdan bir işlemi onaylamasını veya iptal etmesini ister. Her iki seçeneği de gösterir. OK hem de İptal etmek düğmeleri.

Tamam ve İptal düğmeleri bulunan onay uyarısı iletişim kutusu

Bir uyarıyı nasıl ele alırsınız? Selenium Web Sürücüsü

MKS Alert arabirim Selenium Web Sürücüsü Bu, her uyarı etkileşimini kapsayan dört yöntemi ortaya koymaktadır.

  1. geçersiz işten çıkarma() — tıklar İptal etmek düğmesine basın.
driver.switchTo().alert().dismiss();
  1. geçersiz kabul() — tıklar OK düğmesine basın.
driver.switchTo().alert().accept();
  1. Dize getText() — uyarı mesajını yakalar.
driver.switchTo().alert().getText();
  1. void sendKeys(String stringToSend) — bir uyarı mesajına metin yazar.
driver.switchTo().alert().sendKeys("Text");

Eclipse Otomatik tamamlama, ty komutundan sonra kullanılabilir uyarı yöntemlerini gösterir.ping alert. Editör satırında. Ana pencereden uyarı penceresine istediğiniz zaman geçiş yapmak için şunu kullanın: Selenium'S .çevirmek() yöntemi.

Eclipse Otomatik tamamlama, uyarı işleme yöntemlerini gösteriyor.

Örnek Uygulama: Müşteri Demosunu Silme

Aşağıdaki senaryoyu otomatikleştirelim. Bunun için şunu kullanacağız: Guru99 demo sitesi örnek olarak gösterilecektir. Selenium Uyarı işleme.

) 1 Adım Tarayıcıyı başlatın ve açın. https://demo.guru99.com/test/delete_customer.php.

) 2 Adım Herhangi bir Müşteri Kimliği girin.

Müşteri Kimliği alanını içeren Müşteri demo sayfasını silin.

) 3 Adım Tıkla Formu Gönder düğmesine basın.

Onay uyarısını tetiklemek için Gönder düğmesi

) 4 Adım Oluşturulan onay uyarısını kabul edin veya reddedin.

Silme işlemiyle tetiklenen onay uyarısı

Selenium Java Code: Halletmek Confirmation Alert

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.NoAlertPresentException;
import org.openqa.selenium.Alert;

public class AlertDemo {

    public static void main(String[] args) throws NoAlertPresentException, InterruptedException {
        // Selenium 4 ships Selenium Manager, so an explicit driver path is no longer required.
        WebDriver driver = new ChromeDriver();

        // Open the Delete Customer demo page
        driver.get("https://demo.guru99.com/test/delete_customer.php");

        driver.findElement(By.name("cusid")).sendKeys("53920");
        driver.findElement(By.name("submit")).submit();

        // Switch to the confirmation alert
        Alert alert = driver.switchTo().alert();

        // Capture the alert message
        String alertMessage = alert.getText();
        System.out.println(alertMessage);
        Thread.sleep(5000);

        // Accept the alert
        alert.accept();

        driver.quit();
    }
}

Çıktı: Tarayıcı, Müşteriyi Sil sayfasını açar, müşteri kimliğini girer, onay mesajını kabul eder ve kaydı demo uygulamasından siler.

Açılır Pencerelerle Nasıl Başa Çıkılır? Windows in Selenium Web Sürücüsü

Otomasyonun birden fazla tarayıcı penceresinde çalışması gerektiğinde, testin bu pencereler arasında odak değiştirmesi ve her işlemden sonra ana pencereye geri dönmesi gerekir. Selenium WebDriver, bunu mümkün kılan iki yöntem sunmaktadır.

sürücü.getPencereTanıtıcıları()

Bir Set<String> Açık olan her pencerenin tanıtıcısını kontrol edin. Ana pencereden uygulamadaki herhangi bir alt pencereye geçmek için küme üzerinde yineleme yapın.

Driver.getWindowHandle()

Bir String Geçerli pencerenin benzersiz tanıtıcısıyla birlikte. Herhangi bir alt pencere açmadan önce bunu yakalayın, böylece daha sonra üst pencereye geri dönebilirsiniz.

Pencere kullanımını aşağıdaki adımlarla nasıl uygulayabileceğinizi gösterin. Guru99 açılır pencere demosu.

Örnek Uygulama: Pencereler Arası Geçiş

) 1 Adım Tarayıcıyı başlatın ve açın. https://demo.guru99.com/popup.php.

Guru99 açılır pencere demo açılış sayfası

) 2 Adım Tıkla Buraya Tıkla bağlantı. Yeni bir alt pencere açılır.

"Buraya Tıklayın" bağlantısından alt pencere açılıyor.

) 3 Adım Alt pencere, kullanıcıdan bir e-posta adresi girmesini ve göndermesini ister.

Çocuk penceresi e-posta giriş formu

) 4 Adım E-posta adresinizi girin ve gönderin.

Alt pencere içinden e-posta gönderimi

) 5 Adım Bu sayfada demo tarafından döndürülen erişim kimlik bilgileri görüntülenir.

Alt pencerede görüntülenen erişim kimlik bilgileri

Kimlik bilgilerinin görüntülenmesinin ardından:

  1. Çocuk penceresini kapatın.

Tarayıcıda alt pencere kapatılıyor.

  1. Odak noktasını tekrar üst pencereye çevirin.

Odak noktasını tekrar üst pencereye çevirme

Selenium Java CodeBirden Fazla İşlemi Yönetmek Windows

import java.util.Iterator;
import java.util.Set;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class WindowHandle_Demo {

    public static void main(String[] args) throws InterruptedException {
        // Selenium 4 auto-resolves the browser driver via Selenium Manager
        WebDriver driver = new FirefoxDriver();

        driver.get("https://demo.guru99.com/popup.php");
        driver.manage().window().maximize();

        driver.findElement(By.xpath("//*[contains(@href,'popup.php')]")).click();

        String mainWindow = driver.getWindowHandle();

        // Capture every open window handle
        Set<String> allWindows = driver.getWindowHandles();
        Iterator<String> iterator = allWindows.iterator();

        while (iterator.hasNext()) {
            String childWindow = iterator.next();

            if (!mainWindow.equalsIgnoreCase(childWindow)) {
                // Switch to the child window
                driver.switchTo().window(childWindow);
                driver.findElement(By.name("emailid")).sendKeys("gaurav.3n@gmail.com");
                driver.findElement(By.name("btnLogin")).click();

                // Close the child window
                driver.close();
            }
        }
        // Return focus to the main window
        driver.switchTo().window(mainWindow);
        driver.quit();
    }
}

Çıktı: Site yayına başlıyor, Buraya Tıkla Bağlantı alt sekme açar. Selenium E-postayı girer ve gönderir, alt pencereyi kapatır ve üst pencereye geri döner.

Birden fazla pencerenin montajı tamamlandı. Selenium

Sonuç

  • Üçünü tanımladı Selenium Uyarı türleri — basit, anlık bildirim ve onay — her biri için bir ekran görüntüsüyle birlikte.
  • WebDriver ile uyarıların nasıl işlendiği gösterildi. Alert Çalışan bir müşteri silme senaryosu kullanan arayüz.
  • Birden fazla tarayıcı penceresini, tanıtıcıları yakalayarak yönetti. getWindowHandle() hem de getWindowHandles() ve aralarında geçiş yapmak.

SSS

Uyarı, yerel bir uyarıdır. JavaSayfa işlenene kadar sayfayı askıya alan komut dosyası iletişim kutusu. Açılır pencere, yeni bir tarayıcı penceresi veya sekmesidir. Uyarılar switchTo().alert() yöntemini kullanırken, açılır pencereler getWindowHandles() tarafından döndürülen tanıtıcıyla switchTo().window() yöntemini kullanır.

switchTo().alert() çalıştırıldığında ancak şu anda hiçbir uyarı görüntülenmiyorsa NoAlertPresentException hatası fırlatılır. Sayfanın iletişim kutusunu tetiklemesi için zaman tanımak amacıyla, ExpectedConditions.alertIsPresent() doğru olana kadar çağrıyı WebDriverWait ile sarın.

Temel kimlik doğrulama açılır pencereleri standart değildir. JavaKomut dosyası uyarıları. Kimlik bilgilerini iletin. URL (https://user:pass@site.com) veya şunu kullanın Selenium 4 CDP Network.setExtraHTTPHeaders. SSO açılır pencereleri için BrowserStack veya kayıtlı bir hasAuthentication işleyici kullanın.

Yapay zekâ asistanları gibi AI Kod yardımcı pilotları, konum bilgisine sahip uyarı işleyicileri oluşturur, gerekli bekleme sürelerini tahmin eder ve kırılgan XPath yapılarını yeniden düzenler. Ayrıca uyarı metni ve alt pencere için doğrulama ifadeleri de hazırlarlar. URLs, hızlanarak Selenium deneme oluşturma.

Evet. Kendi kendini onaran test platformları, DOM değişikliklerini tespit etmek, bozuk konum belirleyicileri değiştirmek ve uyarılar veya açılır pencereler kaydığında bekleme sürelerini ayarlamak için yapay zekayı kullanır. Bu, bakım maliyetlerini azaltır. Selenium Sık sık güncellenen ön uçlara karşı çalışan süitler.

Bu yazıyı şu şekilde özetleyin: