Robot klasse
Robotklasse i selen bruges til at muliggøre automatiseret test til implementeringer af Java-platformen. Det genererer inputhændelser i native systemer til testautomatisering, selvkørende demoer og andre applikationer, hvor brugerne har brug for kontrol over mus og tastatur. Robotklassen er let at implementere, og den kan let integreres i en automatiseret ramme.
Hvorfor robotklasse?
Robotklasse bruges i Selen, fordi brugere i visse Selenium-automatiseringstests har brug for kontrol over tastatur eller mus for at interagere med OS-vinduer som pop op-vinduer til download, pop-ups til udskrivning osv. Og indfødte applikationer som notesblok, lommeregner osv. Selen Webdriver kan ikke håndtere disse pop-ups / applikationer, så i Java version 1.3 blev der introduceret robotklasse, som kan håndtere OS pop-ups / applikationer.
I denne vejledning lærer du,
- Fordele ved robotklasse
- Dokumentation af robotklasse
- Forståelse af Robot Class interne metoder og brug
- Sådan udføres robotklassekode ved hjælp af testNG
- Ulemper ved robotklassen
Fordele ved robotklasse
- Robot klasse kan simulere tastatur og mus begivenhed
- Robotklasse kan hjælpe med at uploade / downloade filer, når du bruger selen webdriver
- Robotklasse kan let integreres med den nuværende automatiseringsramme (nøgleord, datadrevet eller hybrid)
Hvad er robotklassedokumentation?
Den Robot Klasse Dokumentation i selen hjælper brugerne til at forstå den grundlæggende definition, syntaks og brug af alle de metoder og funktioner er tilgængelige i robot klasse i Java AWT pakke. Brugere kan se dokumentationen på det officielle Oracle-websted. Brugere kan også selv oprette dokumentationen på deres lokale maskine.
Følg nedenstående trin for at oprette dokumentationen på den lokale maskine -
Trin 1) Du finder filen src.zip i JDK-mappen. Kopier src.zip og udpakk det samme i en anden mappe eller mappe (sig D: eller E:)
Trin 2) Uddrag src-mappe og naviger til (sti til src-mappe) / src / java / awt
Trin 3) Kopier den aktuelle placering af mappen awt, og åbn kommandoprompten.
Trin 4) I cmd skal du ændre din aktuelle biblioteksplacering til awt-mappe og skrive 'javadoc * .java' som vist nedenfor
Vent et stykke tid på, at systemet skal behandles, når det er afsluttet, vil du se få HTML-filer i awt-mappen.
Trin 5) Åbn index.html
Trin 6) Her har du fuld dokumentation for awt-pakken, fra venstre navigationslinje skal du klikke på 'Robot' hyperlink (Se 1 markeret i nedenstående billede).
Her kan du også se alle metoderne og grænsefladerne i robotklassen (se 2 markeret i ovenstående billede).
Forståelse af Robot Class interne metoder og brug
Robotklassemetoder kan bruges til at interagere med tastatur / mushændelser, mens du foretager browserautomatisering. Alternativt kan AutoIT bruges, men dens ulempe er, at den genererer en eksekverbar fil (exe), som kun fungerer på windows, så det er ikke en god mulighed at bruge.
Nogle almindeligt anvendte og populære metoder til robotklasse under webautomatisering:
- keyPress (): Eksempel: robot.keyPress (KeyEvent.VK_DOWN): Denne metode med tryk på piletasten på tastaturet
- mousePress (): Eksempel : robot.mousePress (InputEvent.BUTTON3_DOWN_MASK): Denne metode vil trykke på højreklik på din mus.
- mouseMove (): Eksempel : robot.mouseMove (point.getX (), point.getY ()): Dette flytter musemarkøren til de angivne X- og Y-koordinater.
- keyRelease (): Eksempel: robot.keyRelease (KeyEvent.VK_DOWN): Denne metode med frigivelse ned piletasten på tastaturet
- mouseRelease (): Eksempel: robot.mouseRelease (InputEvent.BUTTON3_DOWN_MASK): Denne metode frigiver højre museklik
Eksempelkode til automatisering af almindelige brugssager ved hjælp af robotklasse
- Lad os tage eksempel på webstedet http://spreadsheetpage.com/index.php/file/C35/P10/ hvor, når du klikker på en web element ( .//a[@href=contains(text(),'yearly- calendar.xls '] ) en pop-up til OS-download vises.
- For at håndtere dette bruger vi robotklasse (ved at oprette en forekomst af robotklasse i din kode, siger robotrobot = ny robot () ). Robotklasse os til stede i AWT-pakke med JDK.
- For at trykke på pil ned på tastaturet bruger vi ( robot.keyPress (KeyEvent.VK_DOWN))
- For at trykke på TAB-tasten på tastaturet (vi bruger robot.keyPress (KeyEvent.VK_TAB))
- For at trykke på Enter-tasten bruger vi ( robot.keyPress (KeyEvent.VK_ENTER)).
Her er en prøvekode
import java.awt.AWTException;import java.awt.Robot;import java.awt.event.KeyEvent;importer org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;klasse Øvelse1 {offentlig statisk ugyldig hoved (String [] args) kaster AWTException, InterruptedException {WebDriver-driver = ny FirefoxDriver ();driver.get ("http://spreadsheetpage.com/index.php/file/C35/P10/"); // prøve urldriver.findElement (By.xpath (".// a [@ href = indeholder (tekst (), 'årskalender.xls')]")). klik ();Roboterobot = ny robot (); // Robotklasse kaster AWT-undtagelseThread.sleep (2000); // Tråd. Søvn kaster InterruptedExceptionrobot.keyPress (KeyEvent.VK_DOWN); // tryk på pil ned på tastaturet for at navigere og vælg Gem alternativknapThread.sleep (2000); // sleep er kun blevet brugt til at fremvise hver begivenhed separatrobot.keyPress (KeyEvent.VK_TAB);Thread.sleep (2000);robot.keyPress (KeyEvent.VK_TAB);Thread.sleep (2000);robot.keyPress (KeyEvent.VK_TAB);Thread.sleep (2000);robot.keyPress (KeyEvent.VK_ENTER);// tryk på Enter-tasten på tastaturet for at udføre den valgte handling}}
Tjek denne video for at se den i aktion
Sådan udføres Robot Class-kode ved hjælp af TestNG
Da du nu er opmærksom på grundlæggende metoder i robotklassen, så lad os forstå nogle få mere komplekse metoder -
Antag, at du ikke vil bruge klikmetoden til at klikke på webelementet.
I sådanne tilfælde kan du bruge mouseMove-metoden i robotklassen.
Trin 1) mouseMove-metoden tager x- og y-koordinater som parametre som robot. MouseMove (630, 420), hvor 630 angiver x-akse og 420 angiver y-akse. Så denne metode flytter din musemarkør fra den aktuelle placering til det nævnte x- og y-skæringspunkt.
Trin 2) Dernæst skal vi trykke på museknappen. Vi kan bruge metoden mousePress som robot.mousePress (InputEvent.BUTTON1_DOWN_MASK) .
Trin 3) Efter tryk skal musen frigives. Vi kan bruge robot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK ) for at frigive venstre museklik.
Kører kode ved hjælp af testNG:
Kørsel af kode ved hjælp af Testng kræver maven-afhængighed af testNG eller refereret bibliotek med TestNG jar-fil.
TestNG maven afhængighed:
org.testng testng 6.1.1
Efter tilføjelse af Maven-afhængighed eller jar-fil. Du skal importere testnotering af testNG. Når det hele er gjort, skal du bare højreklikke på programkoden og klikke på Kør som derefter klikke på TestNG
... og du vil opdage, at koden starter dens udførelse ved hjælp af testNG API.Her er koden
import java.awt.AWTException;import java.awt.Robot;import java.awt.event.InputEvent;import java.awt.event.KeyEvent;import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;import org.testng.annotations.Test;offentlig klasse Excersise1 {@Prøveoffentlig statisk ugyldig udførelse () kaster InterruptedException, AWTException {WebDriver-driver = ny FirefoxDriver ();driver.manage (). vindue (). maksimere ();driver.get ("http://spreadsheetpage.com/index.php/file/C35/P10/"); // prøve urlRoboterobot = ny robot ();robot.mouseMove (630, 420); // flyt musepunktet til en bestemt placeringrobot.forsinkelse (1500); // forsinkelse er at få koden til at vente på de nævnte millisekunder, før næste trin udføresrobot.mousePress (InputEvent.BUTTON1_DOWN_MASK); // tryk på venstreklikrobot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK); // frigør venstreklikrobot.forsinkelse (1500);robot.keyPress (KeyEvent.VK_DOWN); // tryk på piletasten på tastaturet for at vælge Gem alternativknappenThread.sleep (2000);robot.keyPress (KeyEvent.VK_ENTER);// tryk på Enter-tasten på tastaturet for at udføre den valgte handling}}
Tjek denne video for at se den i aktion
Ulemper ved robotklasse
Robotrammer har få ulemper, der er nævnt nedenfor:
- Nøgleord / mus begivenhed fungerer kun i den aktuelle forekomst af Window. Antag f.eks. At en kode udfører en hvilken som helst robotklassebegivenhed, og at brugeren er flyttet til en anden skærm under kodeudførelsen, så vil der forekomme nøgleord / mushændelse på den skærm.
- De fleste af metoderne som mouseMove er skærmopløsningsafhængig, så der kan være en chance for, at kode, der arbejder på en maskine, muligvis ikke fungerer på en anden.
Resumé
Robotklasse i AWT-pakke bruges til at generere tastatur- / musebegivenheder til at interagere med OS-vinduer og native apps.
Det primære formål med Robot er at understøtte selen automatiserede tests, projektbygning i Java-platform
Denne artikel er bidraget af Ramandeep Singh, der er testautomatiseringsingeniør ved et førende MNC.