how handle alerts popups selenium webdriver selenium tutorial 16
Selenium WebDriver'da Windows ve Web Tabanlı Uyarıları / Açılır Pencereleri İşlemenin Etkin Yolları:
xbox one için sanal gerçeklik başlığı
Önceki öğreticide, tartışmamızı şuna odakladık: WebDriver tarafından sağlanan farklı bekleme türleri . Ayrıca WebDriver'da bulunan çeşitli gezinme seçenekleri hakkında da konuştuk.
İlerlemek Selenium WebDriver Eğitimleri hakkında tartışacağız Web uygulamalarını ve bunların işleme stratejilerini test ederken kullanılabilen farklı uyarı türleri.
Büyük ölçüde odaklanacağımız iki tür uyarı vardır. :
- Windows tabanlı uyarı açılır pencereleri
- Web tabanlı uyarı açılır pencereleri
Windows tabanlı pop-up'ları işlemenin WebDriver'ın yeteneklerinin ötesinde olduğunu bildiğimiz için, pencere açılır pencerelerini işlemek için bazı üçüncü taraf yardımcı programları kullanacağız.
Açılır pencereyi işleme, web uygulamalarını test ederken otomatikleştirmek için en zorlu işlerden biridir. Pop-up türlerindeki çeşitlilik nedeniyle durum daha da karmaşık hale geliyor.
Uyarı kutusu / Açılır kutu / onay Kutusu / Bilgi İstemi / Kimlik Doğrulama Kutusu nedir?
Bu, size bir tür bilgi vermek ya da potansiyel olarak zarar verici bir işlem hakkında sizi uyarmak için görüntü ekranında görünen küçük bir kutudan başka bir şey değildir ya da işlem için sizden izin isteyebilir.
Misal: Daha iyi bir anlayış için gerçek hayattan bir örnek ele alalım; Bu popüler sosyal ağ sitelerinin herhangi birine bir fotoğraf yüklediğimizi varsayalım. Daha sonra yüklenen fotoğrafı silmek istiyorum. Bu yüzden silmek için sil butonuna tıkladım. Sil düğmesine tıkladığım anda, sistem beni eylemime karşı uyararak - Dosyayı gerçekten silmek istiyor musunuz? Şimdi bu uyarıyı kabul etme veya reddetme seçeneğimiz var.
Yani seanstan önce, türlerine göre uyarıları nasıl reddedeceğimizi veya kabul edeceğimizi görelim. Web tabanlı açılır pencerelerden başlayarak.
Ne öğreneceksin:
Web Tabanlı Açılır Pencereler
WebDriver kullanarak bunları nasıl ele alacağımızı görelim.
Web tabanlı açılır kutuyu kullanma
WebDriver, kullanıcılara Uyarı arayüzünü kullanarak bu açılır pencereleri işlemek için çok verimli bir yol sunar.
Uyarı arayüzüyle birlikte kullanacağımız dört yöntem vardır.
1) geçersiz redd () - dismiss () yöntemi, açılır pencere görünür görünmez “İptal” düğmesine tıklar.
iki) geçersiz kabul et () - accept () yöntemi, açılır pencere görünür görünmez 'Tamam' düğmesine tıklar.
3) Dize getText () - getText () yöntemi, uyarı kutusunda görüntülenen metni döndürür.
4) void sendKeys (String stringToSend) - sendKeys () yöntemi, belirtilen dize modelini uyarı kutusuna girer.
Devam edelim ve gerçek uygulamaya bakalım.
Test Edilen Uygulama Açıklaması
Birkaç temel web öğesi türünü içerecek şekilde bir web sayfası tasarladık. Bu, bu serinin önceki bölümlerinde Select class'ı tartışırken sunduğumuz uygulamanın aynısıdır.
- Köprü : Kullanıcıyı 'http://www.google.com/' ve 'http://www.abodeqa.com/' adreslerine yeniden yönlendiren 'Google' ve 'abodeQA' adlı iki köprü sağlanmıştır. tıklama olayı.
- Yıkılmak : Varsayılana ayarlanmış bir değere sahip renkleri, meyveleri ve hayvanları seçmek için üç köprü oluşturulmuştur.
- Buton : Tıklama olayı üzerine Tamam ve İptal düğmelerine sahip açılır kutuyu göstermek için bir 'dene' düğmesi oluşturulmuştur.
(Büyütülmüş görmek için resme tıklayın)
Sonraki, yukarıda belirtilen web sayfasını oluşturmak için kullanılan HTML kodudur:
Test Seçimi SınıfıKırmızı Yeşil Sarı Gri | Elmalı Portakal Mango Kireç | Fil Fare Köpeğini Seçin |
Bir onay kutusu görüntülemek için düğmeye tıklayın. MyFunction () işlevini deneyin {onaylayın ('Bir düğmeye basın!'); } |
Otomatikleştirilecek senaryo
- Web tarayıcısını başlatın ve web sayfasını açın
- 'Deneyin' düğmesini tıklayın
- Uyarıyı kabul edin
- Tekrar 'Deneyin' düğmesini tıklayın
- Uyarıyı reddet
Select Class kullanarak WebDriver Kodu
Lütfen komut dosyası oluşturmak için eski eğiticide oluşturulan 'Learning_Selenium' projesini kullanacağımızı unutmayın.
Aşama 1 : 'Learning_Selenium' projesi altında 'DemoWebAlert' adlı yeni bir java sınıfı oluşturun.
Adım 2 : Aşağıdaki kodu “DemoWebAlert.java” sınıfına kopyalayıp yapıştırın.
Aşağıda, yukarıda belirtilen senaryoya eşdeğer olan test komut dosyası bulunmaktadır.
import org.junit.After; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.Alert; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; /** * class description */ public class DemoWebAlert { WebDriver driver; /** * Constructor */ public DemoWebAlert() { } /** * Set up browser settings and open the application */ @Before public void setUp() { driver=new FirefoxDriver(); // Opened the application driver.get('file:///F:/Work/Selenium/Testing-Presentation/DemoWebPopup.htm'); driver.manage().window().maximize(); } /** * Test to check Select functionality * @throws InterruptedException */ @Test public void testWebAlert() throws InterruptedException { // clicking on try it button driver.findElement(By.xpath('//button(contains(text(),'Try it'))')).click(); Thread.sleep(5000); // accepting javascript alert Alert alert = driver.switchTo().alert(); alert.accept(); // clicking on try it button driver.findElement(By.xpath('//button(contains(text(),'Try it'))')).click(); Thread.sleep(5000); // accepting javascript alert driver.switchTo().alert().dismiss(); // clicking on try it button driver.findElement(By.xpath('//button(contains(text(),'Try it'))')).click(); Thread.sleep(5000); // accepting javascript alert System.out.println(driver.switchTo().alert().getText()); driver.switchTo().alert().accept(); } /** * Tear down the setup after test completes */ @After public void tearDown() { driver.quit(); } }
Kod Gözden Geçirme
İçe Aktarım İfadeleri
Org.openqa.selenium.Alert dosyasını içe aktar - Komut dosyası oluşturmadan önce bu paketi içe aktarın Paket, WebDriver'daki web tabanlı uyarıları işlemek için gereken Alert sınıfına başvurur.
Alert sınıfı için Nesne Oluşturma
Uyarı uyarısı = driver.switchTo (). Alert ();
Alert sınıfı için bir referans değişkeni oluşturuyoruz ve bunu uyarıya gönderiyoruz.
en iyi video dönüştürücü nedir
Uyarıya Geç
Driver.switchTo (). Alert ();
Yukarıdaki komut, kontrolü yeni oluşturulan açılır pencereye geçirmek için kullanılır.
Uyarıyı Kabul Edin
alert.accept ();
Yukarıdaki komut uyarıyı kabul eder ve böylece Tamam düğmesine tıklanır.
Uyarıyı Reddet
alert.dismiss ();
Yukarıdaki komut uyarıyı kapatır ve böylece İptal düğmesine tıklanır ve bu nedenle işlem devam etmemelidir.
Pencere Tabanlı Pop-Up'lar
Zaman zaman otomatikleştirme yaparken, bir dosya yüklerken bir açılır pencere veya göz atma penceresi gibi pencereler tarafından oluşturulan açılır pencereleri işlememiz gereken bazı senaryolar elde ederiz.
Ayrıca okuyun = >> Selenium'da dosya yükleme nasıl yapılır
Selenium'un yalnızca web uygulaması testini destekleyen bir otomasyon test aracı olduğunu bildiğimiz için bu açılır pencereleri kullanmak her zaman biraz zor olmuştur, yani pencere tabanlı uygulamaları desteklemez ve pencere uyarısı bunlardan biridir. Ancak Selenium tek başına duruma yardımcı olamaz, ancak bazı üçüncü taraf müdahaleleriyle birlikte bu sorunun üstesinden gelinebilir.
Selenyum ile birlikte pencere tabanlı açılır pencereleri işlemek için kullanılabilen birkaç üçüncü taraf araç vardır.
dizi kullanarak c ++ 'da yığın uygulaması
Şimdi Robot sınıfını kullanarak pencere tabanlı bir pop-up'ı ele alalım.
Robot sınıfı, klavye ve fare eylemlerini taklit eden java tabanlı bir yardımcı programdır.
Devam etmeden önce, test edilen uygulamaya (AUT) bir göz atalım.
Test Edilen Uygulama Açıklaması
Test edilen bir uygulama olarak 'gmail.com' kullanacağız. Başvurunun daha fazla tanıtım gerektirmediğine inanıyorum.
Otomatikleştirilecek senaryo
- Web tarayıcısını başlatın ve uygulamayı açın - 'gmail.com'
- Geçerli kullanıcı adı ve şifre girin
- Oturum aç düğmesine tıklayın
- Oluştur düğmesine tıklayın
- Ekle simgesine tıklayın
- Pencere tabanlı açılır pencere ile yüklenecek dosyaları seçin.
Robot Sınıfı kullanan WebDriver Kodu
Lütfen komut dosyası oluşturmak için eski eğiticide oluşturulan 'Learning_Selenium' projesini kullanacağımızı unutmayın.
Aşama 1 : 'Learning_Selenium' projesi altında 'DemoWindowAlert' adlı yeni bir java sınıfı oluşturun.
Adım 2 : Aşağıdaki kodu “DemoWindowAlert.java” sınıfına kopyalayıp yapıştırın.
Aşağıda, yukarıda belirtilen senaryoya eşdeğer olan test komut dosyası bulunmaktadır.
import java.awt.Robot;
import java.awt.event.KeyEvent; org.junit.After içe aktar; import org.junit.Before; org.junit.Test'i içe aktar; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; genel sınıf DemoWindowAlert {WebDriver sürücüsü; @Before public void setUp () {sürücü = yeni FirefoxDriver (); driver.get ('https://gmail.com'); driver.manage (). window (). maximize (); } @Test public void testWindowAlert () istisna atar {// geçerli bir e-posta adresi girin driver.findElement (By.id ('Email')). SendKeys ('TestSelenium1607@gmail.com '); // geçerli bir parola sürücüsü girin. findElement (By.id ('Passwd')). sendKeys ('TestSelenium'); // oturum açma düğmesine tıklayın driver.findElement (By.id ('signIn')). tıklayın (); Thread.sleep (30000); // oluştur düğmesine tıklayın driver.findElement (By.xpath ('// div (@ class =' z0 ') // div (içerir (text (),' COMPOSE '))')) tıklayın (); // dosya ekle simgesini tıklayın driver.findElement (By.xpath ('// div (içerir (@ komut,' Dosyalar ')) // div (içerir (@ sınıfı,' aaA '))')) tıklayın ( ); // Robot sınıfının örneğini oluşturma (Java tabanlı bir yardımcı program) Robot rb = new Robot (); // keyPress ve keyRelease olayları yardımıyla tuşlara basmak rb.keyPress (KeyEvent.VK_D); rb.keyRelease (KeyEvent.VK_D); Thread.sleep (2000); rb.keyPress (KeyEvent.VK_SHIFT); rb.keyPress (KeyEvent.VK_SEMICOLON); rb.keyRelease (KeyEvent.VK_SEMICOLON); rb.keyRelease (KeyEvent.VK_SHIFT); rb.keyPress (KeyEvent.VK_BACK_SLASH); rb.keyRelease (KeyEvent.VK_BACK_SLASH); Thread.sleep (2000); rb.keyPress (KeyEvent.VK_P); rb.keyRelease (KeyEvent.VK_P); rb.keyPress (KeyEvent.VK_I); rb.keyRelease (KeyEvent.VK_I); rb.keyPress (KeyEvent.VK_C); rb.keyRelease (KeyEvent.VK_C); Thread.sleep (2000); rb.keyPress (KeyEvent.VK_ENTER); rb.keyRelease (KeyEvent.VK_ENTER); Thread.sleep (2000); } @Genel void tearDown () sonrasında {driver.quit (); }} Kod Gözden Geçirme
İçe Aktarım İfadeleri
java.awt.Robot'u içe aktar - Komut dosyası oluşturmadan önce bu paketi içe aktarın Paket, klavye ve fare olaylarını simüle etmek için gerekli olan java'daki Robot sınıfına başvurur.
java.awt.event.KeyEvent'i içe aktar - Paket, kullanıcının keyPress ve keyRelease olaylarını kullanmasına izin verir.
Robot sınıfı için Nesne Oluşturma
Robot rb = yeni Robot ();
Robot sınıfı için bir referans değişken oluşturuyoruz ve onu somutlaştırıyoruz.
KeyPress ve KeyRelease Olayları
rb.keyPress (KeyEvent.VK_D);
rb.keyRelease (KeyEvent.VK_D);
KeyPress ve keyRelease yöntemleri, kullanıcının sırasıyla klavye üzerindeki belirli bir tuşa basıp bırakmasını simüle eder.
Sonuç
Bu eğiticide, sizi web tabanlı açılır pencereleri işlemek için kullanılan WebDriver Alert sınıfıyla tanıştırmaya çalıştık. Ayrıca keyPress ve keyRelease olaylarının yardımıyla pencere tabanlı uyarıdaki değeri doldurmak için kullanılabilecek Robot sınıfı hakkında size bilgi verdik.
Makale özeti:
- Uyarılar, size bir tür bilgi vermek veya sizi potansiyel olarak zarar verici bir işlem hakkında uyarmak için görüntü ekranında görünen küçük bir kutudur veya hatta işlem için sizden izin isteyebilir.
- Popüler olarak iki tür uyarı vardır -
- Windows tabanlı uyarı açılır pencereleri
- Web tabanlı uyarı açılır pencereleri
- Gerçek komut dosyası oluşturmadan önce, bir açılır listeyi işlemek ve Select sınıfını erişilebilir kılmak için bir WebDriver komut dosyası oluşturabilmek için bir paketi içe aktarmamız gerekir.
- WebDriver, kullanıcılara Uyarı arayüzünü kullanarak bu açılır pencereleri işlemek için çok verimli bir yol sunar.
- geçersiz redd () - Reddet() yöntem açılır pencere görünür görünmez “İptal” düğmesine tıklar.
- geçersiz kabul et () - kabul etmek() yöntem açılır pencere görünür görünmez “Tamam” düğmesine tıklar.
- Dize getText () - getText () yöntem uyarı kutusunda görüntülenen metni döndürür.
- void sendKeys (String stringToSend) - sendKeys () yöntem, belirtilen dize modelini uyarı kutusuna girer.
- Pencereye dayalı açılır pencereleri işleme Selenium'un yalnızca web uygulaması testini destekleyen bir otomasyon test aracı olduğunu bildiğimiz için her zaman biraz yanıltıcı olmuştur, yani Windows tabanlı uygulamaları desteklemez ve pencere uyarısı bunlardan biridir.
- Robot sınıfı klavye ve fare eylemlerini taklit eden ve klavye olaylarının yardımıyla pencere tabanlı açılır pencereleri yönetmek için etkili bir şekilde kullanılabilen java tabanlı bir yardımcı programdır.
- KeyPress ve keyRelease yöntemleri, kullanıcının sırasıyla klavye üzerindeki belirli bir tuşa basıp bırakmasını simüle eder.
Sonraki Eğitim # 17 : Gelecek eğitimde, diğer çeşitli konular hakkında tartışacağız. yaygın olarak kullanılan WebDriver komutları . İstisna işleme ve iframe işleme gibi konulara ışık tutacağız. Ayrıca WebDriver'da sağlanan get komutlarını da tartışacağız.
Okuyucuların bu kavramları günlük senaryo yazımlarında kullanabilmeleri için bu konuları hızlı örneklerle açıklayacağız.
Okuyucular için Not : O zamana kadar bizi izlemeye devam edin ve WebDriver yardımcı programı - 'Uyarı sınıfı' ve Java aracı - 'Robot Sınıfı' kullanarak web tabanlı ve pencere tabanlı açılır pencerelere sahip web sayfalarını otomatikleştirin.
Bununla ilgili sorularınızı / yorumlarınızı veya önceki diğer eğitimleri aşağıdaki yorumlarda yayınlamaktan çekinmeyin.
Önerilen Kaynaklar
- Salatalık Selenium Eğitimi: Salatalık Java Selenium WebDriver Entegrasyonu
- Selenium WebDriver'a Giriş - Selenium Eğitimi # 8
- İlk WebDriver Komut Dosyamızın Uygulanması - Selenium WebDriver Eğitimi # 10
- Eclipse ile WebDriver Tam Kurulum ve Kurulum - Selenium Eğitimi # 9
- Çeşitli Türlerde WebDriver Komutlarını Kullanarak Web Öğelerinin Görünürlüğünü Kontrol Edin - Selenium Eğitimi # 14
- GeckoDriver Selenium Eğitimi: Selenium Projelerinde GeckoDriver Nasıl Kullanılır
- Jenkins'in Selenium WebDriver ile Entegrasyonu: Adım Adım Eğitim
- Etkili Selenium Komut Dosyası Oluşturma ve Sorun Giderme Senaryoları - Selenium Eğitimi # 27