efficient selenium scripting
In de vorige tutorial hebben we de technische implicaties besproken tijdens het implementeren van logging in een framework We discussiëerden log4j hulpprogramma op lengte. We bespraken de basiscomponenten waaruit log4j bestaat vanuit een bruikbaarheidsperspectief. Met de toevoegingen en lay-outs wordt een gebruiker gebruikt om het gewenste logboekformaat / patroon en de gegevensbron / locatie te kiezen.
In de huidige 27e tutorial hierin uitgebreide gratis online trainingsseries van selenium , zouden we onze focus verleggen naar een paar triviale maar toch belangrijke onderwerpen dat zou ons helpen bij het oplossen van enkele terugkerende problemen. We kunnen ze wel of niet gebruiken in dagelijkse scripts, maar ze zouden op de lange termijn nuttig zijn.
Wij zouden bespreek enkele geavanceerde concepten waarin we te maken hebben met muis- en toetsenbordgebeurtenissen, waarbij we toegang krijgen tot meerdere links door lijsten te implementeren Dus laten we beginnen en deze onderwerpen kort bespreken met behulp van geschikte scenario's en codefragmenten.
hoe u een reeks objecten in java kunt maken
Wat je leert:
- JavaScript-uitvoerders
- Toegang tot meerdere elementen in een lijst
- Afhandelen van toetsenbord- en muisgebeurtenissen
- Gevolgtrekking
- Aanbevolen literatuur
JavaScript-uitvoerders
Bij het automatiseren van een testscenario zijn er bepaalde acties die een inherent onderdeel worden van testscripts.
Deze acties kunnen zijn:
- Klikken op een knop, hyperlink, etc.
- Typen in een tekstvak
- Verticaal of horizontaal scrollen totdat het gewenste object in beeld wordt gebracht
- En veel meer
Nu blijkt uit eerdere tutorials dat de beste manier om dergelijke acties te automatiseren is door Selenium-commando's te gebruiken.
Maar wat als de seleniumcommando's niet werken?
Ja, het is absoluut mogelijk dat de zeer basale en elementaire seleniumcommando's in bepaalde situaties niet werken.
Dat gezegd hebbende, om een dergelijke situatie te kunnen oplossen, nemen we JavaScript-uitvoerders in beeld.
Wat zijn JavaScript-uitvoerders?
JavascriptExecutor-interface is een onderdeel van org.openqa.selenium en implementeert de java.lang.Object-klasse. JavascriptExecutor biedt de mogelijkheid om JavaScript rechtstreeks in de webbrowser uit te voeren. Om JavaScript te kunnen uitvoeren, worden bepaalde mechanismen in de vorm van methoden samen met een specifieke set parameters bij de implementatie ervan voorzien.
Methoden
executeScript (String-script, args)
Zoals de naam van de methode suggereert, voert het JavaScript uit binnen het huidige venster, waarschuwing, frame enz. (Het venster waarop de WebDriver-instantie momenteel focust)
executeAsyncScript (String-script, args)
Zoals de naam van de methode suggereert, voert het JavaScript uit binnen het huidige venster, waarschuwing, frame enz. (Het venster waarop de WebDriver-instantie momenteel focust)
De parameters en importinstructie zijn gemeenschappelijk voor beide executormethoden.
Parameters
Script - het script dat moet worden uitgevoerd
Argument - de parameters die het script nodig heeft voor de uitvoering ervan (indien aanwezig)
Importverklaring
Om JavascriptExecutors in onze testscripts te kunnen gebruiken, moeten we het pakket importeren met de volgende syntaxis:
importeer org.openqa.selenium.JavascriptExecutor;
Voorbeeldcode
# 1) Klikken op een webelement
# 2) Typen in een tekstvak
# 3) Naar beneden scrollen totdat het webelement in de weergave is
testuitvoeringsrapportsjabloon in Excel
U kunt verschillende andere manieren vinden om de code te schrijven voor toegang tot JavascriptExecutors.
Toegang tot meerdere elementen in een lijst
Soms kunnen we elementen van hetzelfde type tegenkomen, zoals meerdere hyperlinks, afbeeldingen enz. Gerangschikt in een geordende of ongeordende lijst. Het is dus absoluut logisch om met dergelijke elementen om te gaan met een enkel stuk code en dit kan worden gedaan met behulp van WebElement List. Raadpleeg de onderstaande schermafbeelding om de elementen waar ik het over heb te begrijpen.
In bovenstaande afbeelding zien we dat de verschillende dienstverleners tot een ongeordende lijst behoren. Verificatie van de klikbaarheid en zichtbaarheid van deze elementen kan dus worden gedaan door een enkel stuk code door een lijst met elementen te gebruiken.
Importverklaring
Om een WebElement-lijst in onze testscripts te kunnen gebruiken, moeten we het pakket importeren met de volgende syntaxis:
importeer java.util.List;
Voorbeeldcode
Er zijn verschillende vereisten waaronder de lijsten kunnen worden gebruikt om de elementen te verifiëren met geschikte implementatiewijzigingen.
Afhandelen van toetsenbord- en muisgebeurtenissen
Omgaan met toetsenbordgebeurtenissen
Zoals ook eerder gezegd, zijn er n aantal manieren om met dezelfde probleemstelling in verschillende contexten om te gaan.
Zo ontstaat soms de noodzaak om een probleem aan te pakken door de conventionele handelsstrategie te veranderen met een meer geavanceerde strategie. Ik ben getuige geweest van gevallen waarin ik niet kon omgaan met waarschuwingen en pop-ups enz. Door seleniumopdrachten, dus ik moest kiezen voor verschillende Java-hulpprogramma's om ermee om te gaan met behulp van toetsenbordaanslagen en muisgebeurtenissen.
Robotklasse is zo'n optie om toetsenbordgebeurtenissen en muisgebeurtenissen uit te voeren.
Laten we het concept begrijpen met behulp van een scenario en de implementatie ervan.
Scenario:
Laten we een situatie verzamelen waarin een onnodige pop-up op het scherm verschijnt die niet kan worden geaccepteerd of afgewezen met behulp van Alert Interface, dus de enige verstandige optie die we nog hebben, is het venster sluiten met sneltoetsen - 'Alt + spatiebalk + C' . Laten we eens kijken hoe we de pop-up sluiten met Robot Class.
Voordat we met de implementatie beginnen, moeten we het benodigde pakket importeren om Robot class te kunnen gebruiken binnen ons testscript.
Importverklaring
importeer java.awt.Robot;
Voorbeeldcode
Robotklasse kan ook worden gebruikt om muisgebeurtenissen af te handelen, maar laten we hier eens kijken naar de mogelijkheden van het selenium om muisgebeurtenissen af te handelen.
Omgaan met muisgebeurtenissen
WebDriver biedt een breed scala aan interactiehulpprogramma's die de gebruiker kan gebruiken om muis- en toetsenbordgebeurtenissen te automatiseren. Action Interface is zo'n hulpprogramma dat de interacties van één gebruiker simuleert.
We zouden dus Action Interface zien om met de muis over een vervolgkeuzelijst te bewegen, die vervolgens een lijst met opties opent in het volgende scenario.
Scenario:
- Beweeg de muis over de vervolgkeuzelijst
- Klik op een van de items in de lijstopties
Importverklaring
import org.openqa.selenium.interactions.Actions;
Voorbeeldcode
welke muziekdownloader het beste is
Gevolgtrekking
In deze zelfstudie hebben we enkele geavanceerde onderwerpen besproken die betrekking hebben op efficiënt scripten en om scenario's op te lossen waarbij de gebruiker muis- en toetsenbordgebeurtenissen moet afhandelen. We hebben ook besproken hoe u meer dan één webelement in een lijst kunt opslaan. Ik hoop dat u deze belemmeringen kunt oplossen als u ze tegenkomt.
Volgende les # 28 : Voor de komende tutorial in de serie zouden we de concept van databasetesten met Selenium WebDriver We zouden getuige zijn van het mechanisme van databaseverbinding, seleniumquery's halen en de resultaten ophalen via Selenium WebDriver Code.
Aanbevolen literatuur
- Inleiding tot Selenium WebDriver - Selenium Tutorial # 8
- Selenium-scripts debuggen met logboeken (Log4j-zelfstudie) - Selenium-zelfstudie # 26
- 30+ beste selenium-zelfstudies: leer selenium met echte voorbeelden
- Cucumber Selenium Tutorial: Cucumber Java Selenium WebDriver Integration
- Elementen zoeken in Chrome- en IE-browsers voor het bouwen van Selenium-scripts - Selenium-zelfstudie # 7
- Implementatie van ons eerste WebDriver-script - Selenium WebDriver-zelfstudie # 10
- WebDriver Volledige installatie en installatie met Eclipse - Selenium Tutorial # 9
- Generieke geneesmiddelen en testsuites maken - Selenium-zelfstudie # 22