how handle alerts popups selenium webdriver selenium tutorial 16
Efficiënte manieren om Windows- en webgebaseerde waarschuwingen / pop-ups in Selenium WebDriver af te handelen:
wat is een netwerkbeveiligingssleutel voor wifi
In de vorige tutorial hebben we onze discussie gericht op verschillende soorten wachten aangeboden door de WebDriver We hebben ook gesproken over verschillende soorten navigatie-opties die beschikbaar zijn in WebDriver.
Vooruitgaan in de Selenium WebDriver-zelfstudies , zullen we bespreken verschillende soorten waarschuwingen beschikbaar tijdens het testen van webapplicaties en hun behandelingsstrategieën.
Er zijn twee soorten waarschuwingen waarop we ons voornamelijk zouden concentreren
- Op Windows gebaseerde pop-ups met waarschuwingen
- Webgebaseerde pop-ups met waarschuwingen
Omdat we weten dat het omgaan met op vensters gebaseerde pop-ups de mogelijkheden van WebDriver te boven gaat, zouden we een aantal hulpprogramma's van derden gebruiken om pop-ups van vensters af te handelen.
Het afhandelen van pop-ups is een van de meest uitdagende werkzaamheden om te automatiseren tijdens het testen van webapplicaties. Door de diversiteit aan soorten pop-ups wordt de situatie nog ingewikkelder.
Wat is een waarschuwingsvenster / pop-upvenster / bevestigingsvenster / prompt / authenticatiedoos?
Het is niets anders dan een klein vakje dat op het scherm verschijnt om u informatie te geven of om u te waarschuwen voor een mogelijk schadelijke operatie, of het kan u zelfs om toestemming voor de operatie vragen.
Voorbeeld: Laten we een voorbeeld uit de praktijk bekijken voor een beter begrip; Laten we aannemen dat we een foto hebben geüpload naar een van deze populaire sociale netwerksites. Later wil ik de geüploade foto verwijderen. Dus om te verwijderen, klikte ik op de verwijderknop. Zodra ik op de verwijderknop klik, waarschuwt het systeem me voor mijn actie en wordt gevraagd - Wil je het bestand echt verwijderen? Dus nu hebben we een optie om deze waarschuwing te accepteren of te weigeren.
Dus voorafgaand aan de sessie laten we eens kijken hoe we de waarschuwingen afwijzen of accepteren, afhankelijk van hun type. Te beginnen met de webgebaseerde pop-ups.
Wat je leert:
Webgebaseerde pop-ups
Laten we eens kijken hoe we ermee omgaan met WebDriver.
Omgaan met webgebaseerde pop-upboxen
WebDriver biedt de gebruikers een zeer efficiënte manier om met deze pop-ups om te gaan met behulp van de Alert-interface.
Er zijn de vier methoden die we zouden gebruiken in combinatie met de Alert-interface.
1) ongeldig ontslaan () - De methode dismiss () klikt op de knop 'Annuleren' zodra het pop-upvenster verschijnt.
twee) ongeldig accepteren () - De accept () methode klikt op de 'Ok' knop zodra het pop-upvenster verschijnt.
3) Tekenreeks getText () - De methode getText () retourneert de tekst die wordt weergegeven in het waarschuwingsvenster.
4) void sendKeys (String stringToSend) - De methode sendKeys () voert het opgegeven tekenreekspatroon in het waarschuwingsvenster in.
Laten we verder gaan en kijken naar de daadwerkelijke implementatie.
Uitleg van de te testen applicatie
We hebben een webpagina zo ontworpen dat deze enkele fundamentele typen webelementen bevat. Dit is dezelfde applicatie die we hebben geïntroduceerd toen we eerder in deze serie de Select class bespraken.
- Hyperlink : De twee hyperlinks, namelijk 'Google' en 'abodeQA', zijn voorzien die de gebruiker omleiden naar respectievelijk 'http://www.google.com/' en 'http://www.abodeqa.com/' op de klik evenement.
- Laten vallen : De drie hyperlinks zijn gemaakt voor het selecteren van kleuren, fruit en dieren met een standaardwaarde.
- Knop : Er is een 'probeer het' -knop gemaakt om het pop-upvenster weer te geven met de knoppen OK en Annuleren bij het klikken op een gebeurtenis.
(Klik op afbeelding om vergroot te bekijken)
Daarop volgt de HTML-code die is gebruikt om de bovengenoemde webpagina te maken:
Testen Selecteer klasRood Groen Geel Grijs | Appel Oranje Mango Limoen | Selecteer Elephant Mouse Dog |
Klik op de knop om een bevestigingsvenster weer te geven. Probeer de functie myFunction () {confirm ('Press a button!'); |
Scenario dat moet worden geautomatiseerd
- Start de webbrowser en open de webpagina
- Klik op de knop 'Probeer het'
- Accepteer de waarschuwing
- Klik nogmaals op de knop 'Probeer het'
- Weiger de waarschuwing
WebDriver-code met behulp van Select Class
Houd er rekening mee dat we voor het maken van scripts het “Learning_Selenium” -project zouden gebruiken dat in de vorige tutorial was gemaakt.
Stap 1 : Maak een nieuwe Java-klasse aan met de naam 'DemoWebAlert' onder het 'Learning_Selenium' -project.
Stap 2 : Kopieer en plak de onderstaande code in de klasse 'DemoWebAlert.java'.
Hieronder staat het testscript dat equivalent is aan het bovengenoemde scenario.
Code doorlopen
Verklaringen importeren
Importeer org.openqa.selenium.Alert - Importeer dit pakket voordat het script wordt gemaakt. Het pakket verwijst naar de Alert-klasse die nodig is om de webgebaseerde waarschuwingen in WebDriver af te handelen.
Object maken voor Alert-klasse
Alert alert = driver.switchTo (). Alert ();
We maken een referentievariabele voor de klasse Alert en verwijzen deze naar de waarschuwing.
hoe .jar-bestanden worden afgespeeld
Schakel over naar Alert
Driver.switchTo (). Alert ();
Het bovenstaande commando wordt gebruikt om de besturing over te schakelen naar het recentelijk gegenereerde pop-upvenster.
Accepteer de waarschuwing
alert.accept ();
Het bovenstaande commando accepteert de waarschuwing door op de knop Ok te klikken.
Verwerp de waarschuwing
alert.dismiss ();
De bovenstaande opdracht sluit de waarschuwing door op de knop Annuleren te klikken en daarom mag de bewerking niet doorgaan.
Venster-gebaseerde pop-ups
Soms krijgen we tijdens het automatiseren een aantal scenario's, waarbij we pop-ups moeten verwerken die door vensters worden gegenereerd, zoals een afdrukpop-up of een browservenster tijdens het uploaden van een bestand.
Lees ook = >> Hoe om te gaan met het uploaden van bestanden in Selenium
Het omgaan met deze pop-ups is altijd een beetje lastig geweest, omdat we weten dat Selenium een automatiseringstesttool is die alleen het testen van webapplicaties ondersteunt, wat betekent dat het geen op Windows gebaseerde applicaties ondersteunt en Window Alert er daar één van is. Selenium alleen kan de situatie echter niet helpen, maar samen met een tussenkomst van een derde partij kan dit probleem worden opgelost.
Er zijn verschillende tools van derden beschikbaar voor het afhandelen van op vensters gebaseerde pop-ups samen met het selenium.
welke tool kun je gebruiken om een database visueel weer te geven en te analyseren?
Laten we nu een pop-upvenster op basis van een venster behandelen met Robotklasse.
Robotklasse is een op Java gebaseerd hulpprogramma dat de toetsenbord- en muisacties emuleert.
Laten we, voordat we verder gaan, even de tijd nemen om de te testen applicatie (AUT) te bekijken.
Uitleg van de te testen applicatie
Als een te testen applicatie zouden we 'gmail.com' gebruiken. Ik denk dat de applicatie geen introductie meer vereist.
Scenario dat moet worden geautomatiseerd
- Start de webbrowser en open de applicatie - 'gmail.com'
- Voer een geldige gebruikersnaam en wachtwoord in
- Klik op de aanmeldknop
- Klik op de knop opstellen
- Klik op het bijvoegpictogram
- Selecteer de bestanden die moeten worden geüpload met het pop-upvenster.
WebDriver-code met behulp van Robot Class
Houd er rekening mee dat we voor het maken van scripts het “Learning_Selenium” -project zouden gebruiken dat in de vorige tutorial was gemaakt.
Stap 1 : Maak een nieuwe Java-klasse met de naam 'DemoWindowAlert' onder het 'Learning_Selenium' -project.
Stap 2 : Kopieer en plak de onderstaande code in de klasse 'DemoWindowAlert.java'.
Hieronder staat het testscript dat equivalent is aan het bovengenoemde scenario.
importeer java.awt.event.KeyEvent; importeer org.junit.After; import org.junit.Before; importeer org.junit.Test; import org.openqa.selenium.By; importeer org.openqa.selenium.WebDriver; importeer org.openqa.selenium.firefox.FirefoxDriver; openbare klasse DemoWindowAlert {WebDriver-stuurprogramma; @Before public void setUp () {driver = nieuwe FirefoxDriver (); driver.get ('https://gmail.com'); driver.manage (). window (). maximaliseren (); } @Test public void testWindowAlert () gooit uitzondering {// voer een geldig e-mailadres in driver.findElement (By.id ('E-mail')). SendKeys ('TestSelenium1607@gmail.com '); // voer een geldig wachtwoord in driver.findElement (By.id ('Passwd')). sendKeys ('TestSelenium'); // klik op inlogknop driver.findElement (By.id ('signIn')). click (); Thread.sleep (30000); // klik op de knop opstellen driver.findElement (By.xpath ('// div (@ class =' z0 ') // div (bevat (tekst (),' COMPOSE '))')). click (); // klik op het pictogram voor bestanden bijvoegen driver.findElement (By.xpath ('// div (bevat (@ commando,' Files ')) // div (bevat (@ class,' aaA '))')). klik ( ); // het creëren van een instantie van Robot class (een op Java gebaseerd hulpprogramma) Robot rb = new Robot (); // toetsen indrukken met behulp van keyPress en keyRelease events 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 openbare leegte tearDown () {driver.quit (); Code doorlopen
Verklaringen importeren
importeer java.awt.Robot - Importeer dit pakket voorafgaand aan het maken van het script. Het pakket verwijst naar de Robot-klasse in java die toetsenbord- en muisgebeurtenissen simuleert.
importeer java.awt.event.KeyEvent - Met het pakket kan de gebruiker keyPress en keyRelease-gebeurtenissen van een toetsenbord gebruiken.
Objecten maken voor robotklasse
Robot rb = nieuwe Robot ();
We maken een referentievariabele voor de Robotklasse en instantiëren deze.
KeyPress- en KeyRelease-gebeurtenissen
rb.keyPress (KeyEvent.VK_D);
rb.keyRelease (KeyEvent.VK_D);
De keyPress- en keyRelease-methoden simuleren dat de gebruiker respectievelijk een bepaalde toets op het toetsenbord indrukt en loslaat.
Gevolgtrekking
In deze tutorial hebben we geprobeerd u bekend te maken met de Alert-klasse van WebDriver die wordt gebruikt om webgebaseerde pop-ups af te handelen. We hebben u ook geïnformeerd over de robotklasse die kan worden gebruikt om de waarde in de venstergebaseerde waarschuwing in te vullen met behulp van keyPress- en keyRelease-gebeurtenissen.
Artikel samenvatting:
- Waarschuwingen zijn een klein vakje dat op het scherm verschijnt om u een soort informatie te geven of om u te waarschuwen voor een mogelijk schadelijke operatie of het kan u zelfs om toestemming voor de operatie vragen.
- Er zijn in de volksmond twee soorten waarschuwingen
- Windows-gebaseerde pop-ups met waarschuwingen
- Webgebaseerde pop-ups met waarschuwingen
- Voorafgaand aan de daadwerkelijke scripting, moeten we een pakket importeren om een WebDriver-script te kunnen maken voor het afhandelen van een vervolgkeuzelijst en het toegankelijk maken van de Select-klasse.
- WebDriver biedt de gebruikers een zeer efficiënte manier om met deze pop-ups om te gaan met behulp van de Alert-interface.
- ongeldig ontslaan () - De verwerpen () methode klikt op de knop 'Annuleren' zodra het pop-upvenster verschijnt.
- ongeldig accepteren () - De aanvaarden() methode klikt op de 'Ok' -knop zodra het pop-upvenster verschijnt.
- Draad getText () - De getText () methode geeft de tekst terug die wordt weergegeven in het waarschuwingsvenster.
- void sendKeys (String stringToSend) - De sendKeys () methode voert het opgegeven tekenreekspatroon in het waarschuwingsvenster in.
- Omgaan met op vensters gebaseerde pop-ups zijn altijd een beetje lastig geweest, omdat we weten dat Selenium een automatiseringstesttool is die alleen het testen van webapplicaties ondersteunt, wat betekent dat het geen Windows-gebaseerde applicaties ondersteunt en Window Alert er daar één van is.
- Robotklasse is een op Java gebaseerd hulpprogramma dat de toetsenbord- en muisacties emuleert en effectief kan worden gebruikt om op vensters gebaseerde pop-ups af te handelen met behulp van toetsenbordgebeurtenissen.
- De keyPress- en keyRelease-methoden simuleren dat de gebruiker respectievelijk een bepaalde toets op het toetsenbord indrukt en loslaat.
Volgende les # 17 : In de komende tutorial zouden we het hebben over de verschillende andere veelgebruikte WebDriver-opdrachten We zouden licht werpen op onderwerpen als het afhandelen van uitzonderingen en het afhandelen van iframe. We zouden ook de get-commando's in WebDriver bespreken.
We zouden deze onderwerpen met snelle voorbeelden uitleggen om ze begrijpelijk te maken voor de lezers om deze concepten in hun dagelijkse scripting te oefenen.
Noot voor de lezers : Blijf tot die tijd op de hoogte en automatiseer de webpagina's met webgebaseerde en venstergebaseerde pop-ups met behulp van het hulpprogramma WebDriver - “Alert class” en het hulpprogramma Java - “Robot Class”.
Voel je vrij om je vragen / opmerkingen over deze of andere eerdere tutorials in onderstaande opmerkingen te plaatsen.
Aanbevolen literatuur
- Cucumber Selenium Tutorial: Cucumber Java Selenium WebDriver Integration
- Inleiding tot Selenium WebDriver - Selenium Tutorial # 8
- Implementatie van ons eerste WebDriver-script - Selenium WebDriver-zelfstudie # 10
- WebDriver Volledige installatie en installatie met Eclipse - Selenium Tutorial # 9
- Controleer de zichtbaarheid van webelementen met behulp van verschillende typen WebDriver-opdrachten - Selenium Tutorial # 14
- GeckoDriver Selenium-zelfstudie: GeckoDriver gebruiken in Selenium-projecten
- Integratie van Jenkins met Selenium WebDriver: stapsgewijze zelfstudie
- Efficiënte Selenium-scripts en scenario's oplossen - Selenium-zelfstudie # 27