how handle alerts popups selenium webdriver selenium tutorial 16
Efektivní způsoby, jak zacházet s Windows a webovými výstrahami / vyskakovacími okny v Selenium WebDriver:
jak otevřít torrentované soubory mac
V předchozím tutoriálu jsme se zaměřili na naši diskusi různé typy čekání poskytované WebDriverem . Také jsme diskutovali o různých typech možností navigace dostupných ve WebDriveru.
Pohybující se vpřed v Návody k selenu WebDriver , budeme diskutovat o různé typy upozornění dostupné při testování webových aplikací a jejich strategií zpracování.
Existují dva typy upozornění, na které bychom se hlavně zaměřili :
- Automatická vyskakovací okna založená na systému Windows
- Webová vyskakovací okna upozornění
Jelikož víme, že manipulace s vyskakovacími okny založenými na oknech je nad možnosti WebDriveru, využili bychom tedy některé obslužné programy třetích stran ke zpracování vyskakovacích oken.
Zpracování vyskakovacího okna je jednou z nejnáročnějších prací, které je třeba automatizovat při testování webových aplikací. Vzhledem k rozmanitosti typů vyskakovacích oken komplikuje situaci ještě více.
Co je Alert box / Pop up box / potvrzovací box / Prompt / Authentication Box?
Není to nic jiného než malé pole, které se objeví na obrazovce displeje, aby vám poskytlo nějaké informace nebo vás varovalo před potenciálně škodlivou operací, nebo vás může dokonce požádat o oprávnění pro tuto operaci.
Příklad: Uvažujme o skutečném příkladu pro lepší porozumění; Předpokládejme, že jsme na kteroukoli z těchto oblíbených stránek sociálních sítí nahráli fotografii. Později bych chtěl smazat nahranou fotografii. Abych smazal, kliknul jsem na tlačítko smazat. Jakmile kliknu na tlačítko Odstranit, systém mě varuje před mým jednáním s výzvou - Opravdu chcete soubor smazat? Nyní tedy máme možnost toto upozornění přijmout nebo odmítnout.
Takže před zasedáním podívejme se, jak odmítneme nebo přijmeme upozornění v závislosti na jejich typu. Počínaje webovými vyskakovacími okny.
Co se naučíte:
Vyskakovací okna na webu
Podívejme se, jak s nimi zacházíme pomocí WebDriveru.
Zpracování webového vyskakovacího okna
WebDriver nabízí uživatelům velmi efektivní způsob zpracování těchto vyskakovacích oken pomocí rozhraní Alert.
Existují čtyři metody, které bychom spolu s Alert interface používali.
1) zrušit propuštění () - Metoda decl () klikne na tlačítko „Zrušit“, jakmile se objeví vyskakovací okno.
dva) neplatnost přijmout () - Metoda accept () klikne na tlačítko „Ok“, jakmile se objeví vyskakovací okno.
3) Řetězec getText () - Metoda getText () vrací text zobrazený v poli výstrahy.
4) void sendKeys (String stringToSend) - Metoda sendKeys () zadá zadaný vzor řetězce do výstražného pole.
Pojďme se pohnout kupředu a podívejme se na skutečnou implementaci.
Vysvětlení testované aplikace
Webovou stránku jsme navrhli tak, aby obsahovala několik základních typů webových prvků. Jedná se o stejnou aplikaci, kterou jsme představili při diskusi o třídě Select dříve v této sérii.
- Hypertextový odkaz : Byly poskytnuty dva hypertextové odkazy, konkrétně „Google“ a „abodeQA“, které přesměrovávají uživatele na „http://www.google.com/“ a „http://www.abodeqa.com/“. klepněte na událost.
- Rozevírací seznam : Byly vytvořeny tři hypertextové odkazy pro výběr barev, ovoce a zvířat s výchozí hodnotou.
- Knoflík : Bylo vytvořeno tlačítko „vyzkoušet“, které zobrazí vyskakovací okno s tlačítky OK a Storno po kliknutí.
(Klikněte na obrázek pro zvětšení)
Následně je HTML kód použit k vytvoření výše uvedené webové stránky:
Testování Vyberte tříduČervená Zelená Žlutá Šedá | Apple Orange Mango Lime | Vyberte Elephant Mouse Dog |
Kliknutím na tlačítko zobrazíte potvrzovací pole. Vyzkoušejte funkci myFunction () {potvrdit ('Stiskněte tlačítko!'); } |
Scénář k automatizaci
- Spusťte webový prohlížeč a otevřete webovou stránku
- Klikněte na tlačítko „Vyzkoušet“
- Přijměte upozornění
- Klikněte znovu na tlačítko „Vyzkoušet“
- Odmítnout upozornění
Kód WebDriver pomocí Select Class
Vezměte prosím na vědomí, že pro vytvoření skriptu bychom použili projekt „Learning_Selenium“ vytvořený v předchozím tutoriálu.
Krok 1 : Vytvořte novou třídu Java s názvem „DemoWebAlert“ v rámci projektu „Learning_Selenium“.
Krok 2 : Zkopírujte a vložte níže uvedený kód do třídy „DemoWebAlert.java“.
Níže je uveden testovací skript, který je ekvivalentní výše uvedenému scénáři.
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(); } }
Průchod kódu
Importovat prohlášení
Importovat org.openqa.selenium.Alert - Importujte tento balíček před vytvořením skriptu Balíček odkazuje na třídu Alert, která je nutná ke zpracování webových výstrah ve WebDriveru.
Vytváření objektů pro třídu Alert
Alert alert = driver.switchTo (). Alert ();
Vytvoříme referenční proměnnou pro třídu Alert a odkážeme ji na výstrahu.
co je operační systém v počítači
Přepnout na upozornění
Driver.switchTo (). Alert ();
Výše uvedený příkaz se používá k přepnutí ovládacího prvku do nedávno vygenerovaného vyskakovacího okna.
Přijměte upozornění
alert.accept ();
Výše uvedený příkaz přijímá upozornění, čímž klikne na tlačítko OK.
Odmítnout upozornění
alert.dismiss ();
Výše uvedený příkaz zavře výstrahu, čímž klikne na tlačítko Storno, a proto by operace neměla pokračovat.
Vyskakovací okna založená na okně
Občas při automatizaci dostaneme několik scénářů, kde musíme během nahrávání souboru zpracovat vyskakovací okna vygenerovaná okny, jako je vyskakovací okno pro tisk nebo okno procházení.
Přečtěte si také = >> Jak zacházet s nahráváním souborů v selenu
Zpracování těchto vyskakovacích oken bylo vždy trochu složité, protože víme, že Selenium je nástroj pro testování automatizace, který podporuje pouze testování webových aplikací, to znamená, že nepodporuje aplikace založené na systému Windows a jedním z nich je upozornění na okno. Samotný selen však situaci nemůže pomoci, ale spolu s některými zásahy třetích stran lze tento problém překonat.
Spolu se selenem je k dispozici několik nástrojů třetích stran pro práci s vyskakovacími okny.
jak psát příběhy uživatelů a kritéria přijetí
Pojďme se tedy zabývat vyskakovacím oknem pomocí třídy Robot.
Robot class je nástroj založený na jazyce Java, který emuluje akce klávesnice a myši.
Než půjdeme kupředu, nechte nás chvíli se podívat na testovanou aplikaci (AUT).
Vysvětlení testované aplikace
Jako testovaná aplikace bychom používali „gmail.com“. Věřím, že aplikace již žádné další představování nevyžaduje.
Scénář k automatizaci
- Spusťte webový prohlížeč a otevřete aplikaci - „gmail.com“
- Zadejte platné uživatelské jméno a heslo
- Klikněte na tlačítko přihlášení
- Klikněte na tlačítko pro psaní
- Klikněte na ikonu přílohy
- Pomocí vyskakovacího okna založeného na okně vyberte soubory, které se mají nahrát.
Kód WebDriver pomocí třídy robota
Vezměte prosím na vědomí, že pro vytvoření skriptu bychom použili projekt „Learning_Selenium“ vytvořený v předchozím tutoriálu.
Krok 1 : Vytvořte novou třídu Java s názvem „DemoWindowAlert“ v rámci projektu „Learning_Selenium“.
Krok 2 : Zkopírujte a vložte níže uvedený kód do třídy „DemoWindowAlert.java“.
Níže je uveden testovací skript, který je ekvivalentní výše uvedenému scénáři.
import java.awt.Robot;
import java.awt.event.KeyEvent; importovat org.junit.After; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; veřejná třída DemoWindowAlert {ovladač WebDriver; @ Před public void setUp () {driver = new FirefoxDriver (); driver.get ('https://gmail.com'); driver.manage (). window (). maximize (); } @Test public void testWindowAlert () vyvolá výjimku {// zadejte platnou e-mailovou adresu driver.findElement (By.id ('Email')). SendKeys ('TestSelenium1607@gmail.com '); // zadejte platné heslo driver.findElement (By.id ('Passwd')). sendKeys ('TestSelenium'); // klikněte na přihlašovací tlačítko driver.findElement (By.id ('signIn')). click (); Závit. Spánek (30000); // klik na tlačítko pro psaní driver.findElement (By.xpath ('// div (@ class =' z0 ') // div (contains (text (),' COMPOSE '))'))). click (); // klikněte na ikonu přiložit soubory driver.findElement (By.xpath ('// div (contains (@ command,' Files ')) // div (contains (@ class,' aaA '))')). click ( ); // vytvoření instance třídy Robot (obslužný program založený na jazyce Java) Robot rb = nový Robot (); // stisknutí kláves pomocí událostí keyPress a keyRelease 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); } @After public void tearDown () {driver.quit (); }} Průchod kódu
Importovat prohlášení
importovat java.awt.Robot - Importujte tento balíček před vytvořením skriptu. Balíček odkazuje na třídu Robot v Javě, která je vyžadována, aby simulovala události klávesnice a myši.
importovat java.awt.event.KeyEvent - Balíček umožňuje uživateli používat události keyPress a keyRelease na klávesnici.
Vytváření objektů pro třídu robotů
Robot rb = nový Robot ();
Vytvoříme referenční proměnnou pro třídu Robot a vytvoříme její instanci.
Události KeyPress a KeyRelease
rb.keyPress (KeyEvent.VK_D);
rb.keyRelease (KeyEvent.VK_D);
Metody keyPress a keyRelease simulují stisknutí a uvolnění určité klávesy na klávesnici.
Závěr
V tomto výukovém programu jsme se pokusili seznámit vás s třídou WebDriver’s Alert, která se používá ke zpracování webových vyskakovacích oken. Také jsme vás informovali o třídě Robot, kterou lze použít k naplnění hodnoty v upozornění založeném na okně pomocí událostí keyPress a keyRelease.
Shrnutí článku:
- Výstrahy jsou malá okénka, která se na obrazovce zobrazují, aby vám poskytla nějaké informace nebo vás varovala před potenciálně škodlivou operací, nebo vás může dokonce požádat o oprávnění pro danou operaci.
- Populárně existují dva typy upozornění -
- Vyskakovací okna upozornění na bázi Windows
- Webová vyskakovací okna upozornění
- Před samotným skriptováním musíme importovat balíček, abychom mohli vytvořit skript WebDriver pro zpracování rozevíracího seznamu a zpřístupnění třídy Select.
- WebDriver nabízí uživatelům velmi efektivní způsob zpracování těchto vyskakovacích oken pomocí rozhraní Alert.
- zrušit propuštění () - The zavrhnout() metoda klikne na tlačítko „Zrušit“, jakmile se objeví vyskakovací okno.
- neplatnost přijmout () - The přijmout() metoda klikne na tlačítko „Ok“, jakmile se objeví vyskakovací okno.
- Tětiva getText () - The getText () metoda vrátí text zobrazený v poli výstrahy.
- void sendKeys (String stringToSend) - The sendKeys () metoda zadá zadaný vzor řetězce do výstražného pole.
- Zpracování automaticky otevíraných oken vždy jsme byli trochu ošemetní, jak víme Selenium je nástroj pro testování automatizace, který podporuje pouze testování webových aplikací, to znamená, že nepodporuje aplikace založené na systému Windows a upozornění na okno je jedním z nich.
- Třída robotů je nástroj založený na jazyce Java, který emuluje akce klávesnice a myši a lze jej efektivně použít ke zpracování vyskakovacích oken založených na událostech pomocí klávesnice.
- Metody keyPress a keyRelease simulují stisknutí a uvolnění určité klávesy na klávesnici.
Další výuka č. 17 : V nadcházejícím tutoriálu bychom diskutovali o různých dalších běžně používané příkazy WebDriver . Vrhli bychom světlo na témata, jako je zpracování výjimek a zpracování iframe. Diskutovali bychom také o příkazech get poskytovaných ve WebDriveru.
Vysvětlíme tato témata pomocí rychlých příkladů, aby je čtenáři pochopili, aby mohli tyto koncepty procvičovat ve svém každodenním skriptování.
Poznámka pro čtenáře : Do té doby zůstaňte naladěni a automatizujte webové stránky s webovými a okenními vyskakovacími okny pomocí nástroje WebDriver - „Alert class“ a Java - „Robot Class“.
Neváhejte a napište své dotazy / komentáře k tomuto nebo jakémukoli předchozímu tutoriálu v komentářích níže.
Doporučené čtení
- Cucumber Selenium Tutorial: Cucumber Java Selenium WebDriver Integration
- Úvod do selenu WebDriver - Selenium Tutorial # 8
- Implementace našeho prvního skriptu WebDriver - výuka selenu WebDriver # 10
- Úplné nastavení a instalace WebDriveru s Eclipse - výuka selenu č. 9
- Zkontrolujte viditelnost webových prvků pomocí různých typů Příkazy WebDriver - Selenium Tutorial # 14
- Výukový program GeckoDriver Selenium: Jak používat GeckoDriver v selenových projektech
- Integrace Jenkins s Selenium WebDriver: Podrobný návod
- Efektivní scénáře selenu a řešení potíží - Scénář selenu č. 27