Razred robota u Selenium Webdriveru

Sadržaj:

Anonim

Klasa robota

Klasa robota u seleniju koristi se za omogućavanje automatiziranog testiranja za implementacije Java platforme. Generira ulazne događaje u izvornim sustavima za automatizaciju ispitivanja, samostalne demonstracije i druge programe u kojima korisnici trebaju kontrolu nad mišem i tipkovnicom. Klasa robota je jednostavna za implementaciju i može se lako integrirati s automatiziranim okvirom.

Zašto klasa robota?

Klasa robota koristi se u Seleniju jer u određenim testovima automatizacije Selenium korisnici trebaju kontrolu nad tipkovnicom ili mišem za interakciju sa OS prozorima poput skočnih prozora za preuzimanje, iskačućih prozora itd. I izvornih aplikacija poput bilježnice, kalkulatora itd. Selenium Webdriver ne može obraditi ove skočne prozore / programe, pa je u Javi verziji 1.3 uvedena klasa robota koja može rukovati skočnim prozorima / aplikacijama OS-a.

U ovom ćete tutorijalu naučiti,

  • Prednosti klase robota
  • Dokumentacija klase robota
  • Razumijevanje internih metoda i upotrebe klase robota
  • Kako izvršiti kôd klase robota pomoću testNG
  • Nepovoljnosti klase robota

Prednosti klase robota

  1. Klasa robota može simulirati događaj tipkovnice i miša
  2. Robot Class može vam pomoći u prijenosu / preuzimanju datoteka kada koristite upravljački program selena
  3. Klasa robota može se lako integrirati s trenutnim okvirom automatizacije (ključna riječ, podatkovni pogon ili hibrid)

Što je dokumentacija klase robota?

Robot Klasa Dokumentacija u selen pomaže korisnicima da razumiju osnovne definicije, sintakse i korištenje svih metoda i funkcija u robota klase u Java AWT paketu. Korisnici mogu pregledati dokumentaciju na službenom web mjestu Oracle. Korisnici također mogu sami stvoriti dokumentaciju na svom lokalnom stroju.

Da biste kreirali dokumentaciju na lokalnom stroju, slijedite korake u nastavku -

Korak 1) Datoteku src.zip pronaći ćete u mapi JDK. Kopirajte src.zip i izvadite isti u neku drugu mapu ili direktorij (recimo D: ili E:)

Korak 2) Izdvojite mapu src i idite do (put do mape src) / src / java / awt

Korak 3) Kopirajte trenutno mjesto mape awt i otvorite naredbeni redak.

Korak 4) U cmd, promijenite svoje trenutno mjesto direktorija u awt mapu i upišite 'javadoc * .java' kao što je prikazano ispod

Pričekajte neko vrijeme dok se sustav ne obradi, nakon završetka vidjet ćete nekoliko HTML datoteka u awt mapi.

Korak 5) Otvorite index.html

Korak 6) Ovdje imate potpunu dokumentaciju za awt paket, na lijevoj navigacijskoj traci kliknite hipervezu 'Robot' (vidi 1 označeno na donjoj slici).

Ovdje također možete vidjeti sve metode i sučelja klase robota (vidi 2 označeno na gornjoj slici).

Razumijevanje internih metoda i upotrebe klase robota

Metode klase robota mogu se koristiti za interakciju s događajima tipkovnice / miša tijekom automatizacije preglednika. Alternativno se može koristiti AutoIT, ali njegov je nedostatak što generira izvršnu datoteku (exe) koja će raditi samo na Windowsima, pa nije dobra opcija za upotrebu.

Neke uobičajene i popularne metode klase robota tijekom automatizacije weba:

  • keyPress (): Primjer: robot.keyPress (KeyEvent.VK_DOWN): Ova metoda s pritisnutom tipkom sa strelicom prema dolje na tipkovnici
  • mousePress (): Primjer : robot.mousePress (InputEvent.BUTTON3_DOWN_MASK): Ova metoda će pritisnuti desni klik miša.
  • mouseMove (): Primjer : robot.mouseMove (point.getX (), point.getY ()): Ovo će pomaknuti pokazivač miša na određene X i Y koordinate.
  • keyRelease (): Primjer: robot.keyRelease (KeyEvent.VK_DOWN): Ova metoda s puštanjem tipke sa strelicom prema dolje na tipkovnici
  • mouseRelease (): Primjer: robot.mouseRelease (InputEvent.BUTTON3_DOWN_MASK): Ova metoda će otpustiti desni klik miša

Uzorak koda za automatizaciju uobičajenih slučajeva korištenja klase robota

  • Uzmimo primjer web stranice http://spreadsheetpage.com/index.php/file/C35/P10/ u kojoj nakon što kliknete na web element ( .//a[@href=contains(text(),'yearly- calendar.xls '] ) pojavit će se skočni prozor za preuzimanje OS-a.
  • Da bismo to riješili, koristimo klasu Robot (stvaranjem instance Robot Class u vašem kodu recimo Robot robot = new Robot () ). Klasa robota prisutna u AWT paketu JDK.
  • Da bismo pritisnuli tipku sa strelicom prema dolje na tipkovnici, koristimo ( robot.keyPress (KeyEvent.VK_DOWN))
  • Za pritiskanje tipke TAB na tipkovnici (koristimo robot.keyPress (KeyEvent.VK_TAB))
  • Da bismo pritisnuli tipku Enter, koristimo ( robot.keyPress (KeyEvent.VK_ENTER)).

Evo primjera koda

import java.awt.AWTException;uvoz java.awt.Robot;import java.awt.event.KeyEvent;uvoz org.openqa.selenium.By;uvoz org.openqa.selenium.WebDriver;uvoz org.openqa.selenium.firefox.FirefoxDriver;razred Vježba1 {public static void main (String [] args) baca AWTException, InterruptedException {Upravljački program za WebDriver = novi FirefoxDriver ();driver.get ("http://spreadsheetpage.com/index.php/file/C35/P10/"); // url uzorkadriver.findElement (By.xpath (".// a [@ href = contains (text (), 'yearly-calendar.xls')]")). click ();Robot robot = novi Robot (); // Klasa robota baca AWT iznimkuTema.spavanje (2000.); // Thread.sleep baca InterruptedExceptionrobot.keyPress (KeyEvent.VK_DOWN); // pritisnite tipku sa strelicom prema dolje na tipkovnici za navigaciju i odaberite radio gumb SpremiTema.spavanje (2000.); // spavanje se koristilo samo za prezentaciju svakog događaja zasebnorobot.keyPress (KeyEvent.VK_TAB);Tema.spavanje (2000.);robot.keyPress (KeyEvent.VK_TAB);Tema.spavanje (2000.);robot.keyPress (KeyEvent.VK_TAB);Tema.spavanje (2000.);robot.keyPress (KeyEvent.VK_ENTER);// pritisnite tipku enter tipkovnice za izvođenje gore odabrane radnje}} 

Pogledajte ovaj videozapis da biste ga vidjeli na djelu

Kako izvršiti kôd klase robota pomoću TestNG-a

Budući da ste sada upoznati s osnovnim metodama klase robota, hajde da razumijemo još nekoliko složenih metoda -

Pretpostavimo da ne želite koristiti metodu klika za klikanje na web element.

U takvim slučajevima možete koristiti metodu mouseMove klase Robot.

Korak 1) mouseMove metoda uzima x i y koordinate kao parametre poput robot.mouseMove (630, 420) gdje 630 označava x-os, a 420 označava y-os. Dakle, ova metoda će pomaknuti pokazivač miša sa trenutnog mjesta na spomenutu točku presijecanja x i y.

Korak 2) Zatim moramo pritisnuti tipku miša. Možemo koristiti metodu mousePress kao robot.mousePress (InputEvent.BUTTON1_DOWN_MASK) .

Korak 3) Nakon pritiska, miš treba otpustiti. Možemo koristiti robot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK ) kako bismo otpustili lijevi klik miša.

Pokretanje koda pomoću testNG:

Pokretanje koda pomoću Testng-a zahtijeva maven ovisnost testNG-a ili referencirane biblioteke TestNG jar datoteke.

TestNG ovisnost o mavenu:

 org.testng  testng  6.1.1  

Nakon dodavanja maven ovisnosti ili jar datoteke. Morate uvesti testnu napomenu testNG-a. Kad sve završite, samo kliknite desnom tipkom miša na programski kod i kliknite Pokreni kao, a zatim TestNG

... i otkrit ćete da će kôd započeti svoje izvršavanje pomoću testNG API-ja.

Ovdje je kod

import java.awt.AWTException;uvoz java.awt.Robot;import java.awt.event.InputEvent;import java.awt.event.KeyEvent;uvoz org.openqa.selenium.WebDriver;uvoz org.openqa.selenium.firefox.FirefoxDriver;import org.testng.annotations.Test;javni razred Excersise1 {@Testjavno statično void izvršenje () baca InterruptedException, AWTException {Upravljački program za WebDriver = novi FirefoxDriver ();driver.manage (). window (). maximize ();driver.get ("http://spreadsheetpage.com/index.php/file/C35/P10/"); // url uzorkaRobot robot = novi Robot ();robot.mouseMove (630, 420); // pomicanje točke miša na određeno mjestorobot.zastoj (1500); // kašnjenje je da kôd pričeka spomenute milisekunde prije izvođenja sljedećeg korakarobot.mousePress (InputEvent.BUTTON1_DOWN_MASK); // pritisnite lijevi klikrobot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK); // otpustite lijevi klikrobot.zastoj (1500);robot.keyPress (KeyEvent.VK_DOWN); // pritisnite tipku sa strelicom na tipkovnici da odaberete radio gumb SpremiTema.spavanje (2000.);robot.keyPress (KeyEvent.VK_ENTER);// pritisnite tipku enter tipkovnice za izvođenje gore odabrane radnje}}

Pogledajte ovaj videozapis da biste ga vidjeli na djelu

Mane klase robota

Izrada robota ima nekoliko nedostataka spomenutih u nastavku:

  1. Događaj ključne riječi / miša funkcionirat će samo na trenutnoj instanci Windowsa. Npr. Pretpostavimo da kôd izvodi bilo koji događaj klase robota, a tijekom izvršavanja koda korisnik se preselio na neki drugi zaslon, tada će se na tom ekranu dogoditi događaj ključne riječi / miša.
  2. Većina metoda poput mouseMove ovisi o razlučivosti zaslona, ​​tako da postoji šansa da kod koji radi na jednom stroju možda neće raditi na drugom.

Sažetak

Klasa robota u paketu AWT koristi se za generiranje događaja na tipkovnici / mišu za interakciju s OS-ovim prozorima i izvornim aplikacijama.

Primarna svrha Robota je podržati izgradnju automatiziranih testova selena u izgradnji Java platforme

Ovom je članku pridonio Ramandeep Singh, inženjer za automatizaciju ispitivanja u vodećem MNC-u.