Robotklasse i Selen Webdriver

Innholdsfortegnelse:

Anonim

Robotklasse

Robotklasse i selen brukes til å muliggjøre automatisert testing for implementeringer av Java-plattformen. Den genererer inngangshendelser i innfødte systemer for testautomatisering, selvkjørende demoer og andre applikasjoner der brukere trenger kontroll over mus og tastatur. Robotklassen er enkel å implementere, og den kan enkelt integreres i et automatisert rammeverk.

Hvorfor robotklasse?

Robotklasse brukes i Selen fordi brukere i visse Selen-automatiseringstester trenger kontroll over tastatur eller mus for å samhandle med OS-vinduer som nedlasting av popup-vinduer, utskriftsvinduer osv. Og innfødte applikasjoner som notisblokk, kalkulator osv. Selen Webdriver kan ikke håndtere disse popup-programmene / applikasjonene, så i Java versjon 1.3 ble det introdusert robotklasse som kan håndtere OS pop-ups / applikasjoner.

I denne veiledningen vil du lære,

  • Fordeler med robotklasse
  • Dokumentasjon av robotklasse
  • Forstå interne metoder og bruk av robotklassen
  • Hvordan utføre robotklassekode ved hjelp av testNG
  • Ulemper ved robotklasse

Fordeler med robotklasse

  1. Robotklasse kan simulere Keyboard and Mouse Event
  2. Robotklasse kan hjelpe deg med å laste opp / laste ned filer når du bruker selen webdriver
  3. Robotklasse kan enkelt integreres med gjeldende automatiseringsrammeverk (søkeord, datadrevet eller hybrid)

Hva er robotklassedokumentasjon?

The Robot Class Dokumentasjon i selen hjelper brukerne til å forstå de grunnleggende definisjon, syntaks og bruk av alle metoder og funksjoner som er tilgjengelige i robot klasse i Java AWT pakken. Brukere kan se dokumentasjonen på det offisielle Oracle-nettstedet. Brukere kan også lage dokumentasjonen på sin lokale maskin selv.

Følg trinnene nedenfor for å opprette dokumentasjonen på lokal maskin -

Trinn 1) Du finner src.zip-filen i JDK-mappen. Kopier src.zip og trekk ut det samme i en annen mappe eller katalog (si D: eller E:)

Trinn 2) Pakk ut src-mappen og naviger til (path till src folder) / src / java / awt

Trinn 3) Kopier gjeldende plassering av awt-mappen og åpne ledeteksten.

Trinn 4) I cmd, endre den nåværende katalogplasseringen til awt-mappen og skriv 'javadoc * .java' som vist nedenfor

Vent litt til systemet skal behandles, når det er fullført, vil du se få HTML-filer i awt-mappen.

Trinn 5) Åpne index.html

Trinn 6) Her har du full dokumentasjon for awt-pakken, fra venstre navigasjonslinje klikker du på 'Robot' hyperkobling (Se 1 markert i bildet nedenfor).

Her kan du også se alle metodene og grensesnittene til robotklassen (se 2 merket i bildet over).

Forstå interne metoder og bruk av robotklassen

Robotklassemetoder kan brukes til å samhandle med tastatur / mushendelser mens du gjør nettleserautomatisering. Alternativt kan AutoIT brukes, men ulempen er at den genererer en kjørbar fil (exe) som bare fungerer på windows, så det er ikke et godt alternativ å bruke.

Noen vanlige og populære brukte metoder for Robot Class under nettautomatisering:

  • keyPress (): Eksempel: robot.keyPress (KeyEvent.VK_DOWN): Denne metoden med trykk ned piltasten på tastaturet
  • mousePress (): Eksempel : robot.mousePress (InputEvent.BUTTON3_DOWN_MASK): Denne metoden vil trykke høyre museklikk.
  • mouseMove (): Eksempel : robot.mouseMove (point.getX (), point.getY ()): Dette vil flytte musepekeren til de angitte X- og Y-koordinatene.
  • keyRelease (): Eksempel: robot.keyRelease (KeyEvent.VK_DOWN): Denne metoden med frigjøring ned piltasten på tastaturet
  • mouseRelease (): Eksempel: robot.mouseRelease (InputEvent.BUTTON3_DOWN_MASK): Denne metoden vil frigjøre høyre klikk på musen

Eksempelkode for å automatisere vanlige brukstilfeller ved hjelp av Robot Class

  • La oss ta et eksempel på nettstedet http://spreadsheetpage.com/index.php/file/C35/P10/ hvor etter at du klikker på et webelement ( . calendar.xls '] ) en popup-popup for operativsystem vises.
  • For å håndtere dette bruker vi robotklasse (ved å opprette en forekomst av robotklasse i koden din, si robotrobot = ny robot () ). Robotklasse som vi er til stede i AWT-pakke med JDK.
  • For å trykke ned piltasten på tastaturet bruker vi ( robot.keyPress (KeyEvent.VK_DOWN))
  • For å trykke på TAB-tasten på tastaturet (vi bruker robot.keyPress (KeyEvent.VK_TAB))
  • For å trykke Enter-tasten bruker vi ( robot.keyPress (KeyEvent.VK_ENTER)).

Her er en eksempelkode

importere java.awt.AWTException;importere java.awt.Robot;importere java.awt.event.KeyEvent;importer org.openqa.selenium.By;importer org.openqa.selenium.WebDriver;importer org.openqa.selenium.firefox.FirefoxDriver;klasse Øvelse1 {public static void main (String [] args) kaster AWTException, InterruptedException {WebDriver-driver = ny FirefoxDriver ();driver.get ("http://spreadsheetpage.com/index.php/file/C35/P10/"); // eksempel urldriver.findElement (By.xpath (".// a [@ href = inneholder (tekst (), 'årskalender.xls')]")). klikk ();Roboterobot = ny robot (); // Robotklassen kaster AWT UnntakThread.sleep (2000); // Thread.sleep kaster InterruptedExceptionrobot.keyPress (KeyEvent.VK_DOWN); // trykk piltasten på tastaturet for å navigere og velg Lagre alternativknappThread.sleep (2000); // sleep har bare blitt brukt til å presentere hver hendelse 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);// trykk enter-tasten på tastaturet for å utføre over valgt handling}} 

Sjekk denne videoen for å se den i aksjon

Hvordan utføre robotklassekode ved hjelp av TestNG

Siden du nå er klar over grunnleggende metoder for Robot Class, så la oss forstå noen mer komplekse metoder -

Anta at du ikke vil bruke klikkmetoden for å klikke på webelementet.

I slike tilfeller kan du bruke MouseMove-metoden i robotklassen.

Trinn 1) mouseMove-metoden tar x- og y-koordinater som parametere som robot.mouseMove (630, 420) hvor 630 indikerer x-akse og 420 indikerer y-akse. Så denne metoden vil flytte musepekeren fra gjeldende plassering til nevnte x- og y-skjæringspunkt.

Trinn 2) Deretter må vi trykke på museknappen. Vi kan bruke metoden mousePress som robot.mousePress (InputEvent.BUTTON1_DOWN_MASK) .

Trinn 3) Etter trykk må musen slippes. Vi kan bruke robot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK ) for å frigjøre venstre museklikk.

Kjører kode ved hjelp av testNG:

Å kjøre kode ved hjelp av Testng krever avhengighet av testNG eller referert bibliotek med TestNG jar-fil.

TestNG maven avhengighet:

 org.testng  testng  6.1.1  

Etter å ha lagt til Maven-avhengighet eller jar-fil. Du må importere testkommentar av testNG. Når alt er gjort, er det bare å høyreklikke på programkoden og klikke på Kjør som og deretter klikke på TestNG

... og du vil finne ut at koden vil starte kjøringen ved hjelp av testNG API.

Her er koden

importere java.awt.AWTException;importere java.awt.Robot;importer java.awt.event.InputEvent;importere java.awt.event.KeyEvent;importer org.openqa.selenium.WebDriver;importer org.openqa.selenium.firefox.FirefoxDriver;importer org.testng.annotations.Test;offentlig klasse Excersise1 {@Testoffentlig statisk ugyldig kjøring () kaster InterruptedException, AWTException {WebDriver-driver = ny FirefoxDriver ();driver.manage (). vindu (). maksimere ();driver.get ("http://spreadsheetpage.com/index.php/file/C35/P10/"); // eksempel urlRoboterobot = ny robot ();robot.mouseMove (630, 420); // flytt musepunktet til et bestemt stedrobot.forsinkelse (1500); // forsinkelse er å få koden til å vente på nevnte millisekunder før neste trinn utføresrobot.mousePress (InputEvent.BUTTON1_DOWN_MASK); // trykk venstreklikkrobot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK); // slipp venstreklikkrobot.forsinkelse (1500);robot.keyPress (KeyEvent.VK_DOWN); // trykk piltastaturet for å velge Lagre alternativknappThread.sleep (2000);robot.keyPress (KeyEvent.VK_ENTER);// trykk enter-tasten på tastaturet for å utføre over valgt handling}}

Sjekk denne videoen for å se den i aksjon

Ulemper ved robotklasse

Robotrammer har få ulemper nevnt nedenfor:

  1. Nøkkelord / mus-hendelse fungerer bare på gjeldende forekomst av Window. Anta at en kode utfører en hvilken som helst robotklassehendelse, og at brukeren har flyttet til et annet skjermbilde under kodeutførelsen, så vil søkeord / mushendelse oppstå på den skjermen.
  2. De fleste av metodene som mouseMove er avhengig av skjermoppløsning, så det kan være en sjanse for at kode som fungerer på en maskin, ikke fungerer på en annen.

Sammendrag

Robotklasse i AWT-pakke brukes til å generere tastatur / mushendelser for å samhandle med OS-vinduer og innfødte apper.

Hovedformålet med Robot er å støtte selen automatiserte tester prosjektbygging i Java-plattform

Denne artikkelen er bidratt av Ramandeep Singh, som er en testautomatiseringsingeniør ved et ledende MNC.