Clasa de robot în Selenium Webdriver

Cuprins:

Anonim

Clasa robotului

Robot Class in Selenium este utilizat pentru a permite testarea automată a implementărilor platformei Java. Generează evenimente de intrare în sisteme native pentru automatizarea testelor, demo-uri care rulează automat și alte aplicații în care utilizatorii au nevoie de control asupra mouse-ului și a tastaturii. Clasa de robot este ușor de implementat și poate fi ușor integrată cu un cadru automat.

De ce Robot Class?

Robot Class este utilizat în Selenium deoarece, în anumite teste de automatizare Selenium, utilizatorii au nevoie de control asupra tastaturii sau mouse-ului pentru a interacționa cu ferestrele sistemului de operare, cum ar fi descărcarea ferestrelor pop-up, tipărirea ferestrelor pop-up etc. și aplicații native precum blocnotes, calculator, etc. Webdriver nu poate gestiona aceste ferestre pop-up / aplicații, așa că, în versiunea Java 1.3, a fost introdusă clasa robot care poate gestiona ferestrele pop-up / aplicații ale sistemului de operare.

În acest tutorial, veți învăța,

  • Avantajele clasei de roboți
  • Documentația clasei de roboți
  • Înțelegerea metodelor interne și a utilizării clasei de roboți
  • Cum se execută codul clasei robotului folosind testNG
  • Dezavantajele clasei de roboți

Avantajele clasei de roboți

  1. Robot Class poate simula evenimentul de la tastatură și mouse
  2. Robot Class vă poate ajuta la încărcarea / descărcarea fișierelor atunci când utilizați driverul web seleniu
  3. Robot Class poate fi ușor integrat cu cadrul de automatizare actual (cuvânt cheie, bazat pe date sau hibrid)

Ce este documentația Robot Class?

Documentația Robot de clasă în Seleniul ajută utilizatorii să înțeleagă de bază definirea, sintaxa și utilizarea tuturor metodelor și funcțiile disponibile în clasa robotului în pachetul Java AWT. Utilizatorii pot vizualiza documentația pe site-ul oficial Oracle. Utilizatorii pot crea ei înșiși documentația pe mașina lor locală.

Pentru a crea documentația pe mașina locală, urmați pașii de mai jos-

Pasul 1) Veți găsi fișierul src.zip în folderul JDK. Copiați src.zip și extrageți același lucru în alt dosar sau director (spuneți D: sau E:)

Pasul 2) Extrageți folderul src și navigați la (calea până la folderul src) / src / java / awt

Pasul 3) Copiați locația curentă a folderului awt și deschideți promptul de comandă.

Pasul 4) În cmd, schimbați locația actuală a directorului în folderul awt și tastați „javadoc * .java” așa cum se arată mai jos

Așteptați puțin timp ca sistemul să se proceseze, odată finalizat, veți vedea câteva fișiere HTML în folderul awt.

Pasul 5) Deschideți index.html

Pasul 6) Aici aveți documentația completă a pachetului awt, din bara de navigare din stânga faceți clic pe hyperlinkul „Robot” (a se vedea 1 marcat în imaginea de mai jos).

Aici puteți vedea, de asemenea, toate metodele și interfețele Robot Class (a se vedea 2 marcat în imaginea de mai sus).

Înțelegerea metodelor interne și a utilizării clasei de roboți

Metodele Robot Class pot fi utilizate pentru a interacționa cu evenimente de la tastatură / mouse în timp ce se face automatizarea browserului. Alternativ, AutoIT poate fi utilizat, dar dezavantajul său este că generează un fișier executabil (exe) care va funcționa doar pe Windows, deci nu este o opțiune bună de utilizat.

Unele metode utilizate în mod obișnuit și popular de Robot Class în timpul automatizării web:

  • keyPress (): Exemplu: robot.keyPress (KeyEvent.VK_DOWN): Această metodă cu tasta săgeată în jos a tastaturii
  • mousePress (): Exemplu : robot.mousePress (InputEvent.BUTTON3_DOWN_MASK): Această metodă va apăsa clic dreapta al mouse-ului.
  • mouseMove (): Exemplu : robot.mouseMove (point.getX (), point.getY ()): Aceasta va muta indicatorul mouse-ului la coordonatele X și Y specificate.
  • keyRelease (): Exemplu: robot.keyRelease (KeyEvent.VK_DOWN): Această metodă cu tastă săgeată de eliberare în jos a tastaturii
  • mouseRelease (): Exemplu: robot.mouseRelease (InputEvent.BUTTON3_DOWN_MASK): Această metodă va elibera clic dreapta al mouse-ului

Exemplu de cod pentru automatizarea cazurilor de utilizare obișnuite folosind Robot Class

  • Să luăm un exemplu de site web http://spreadsheetpage.com/index.php/file/C35/P10/ în care după ce faceți clic pe un element web ( .//a[@href=contains(text(),'yearly- calendar.xls '] ) apare o fereastră pop-up de descărcare a sistemului de operare.
  • Pentru a rezolva acest lucru, folosim clasa Robot (prin crearea unei instanțe a clasei Robot în codul dvs., spuneți Robot robot = Robot nou () ). Clasa de robot ne este prezentă în pachetul AWT al JDK.
  • Pentru a apăsa tasta săgeată în jos a tastaturii folosim ( robot.keyPress (KeyEvent.VK_DOWN))
  • Pentru a apăsa tasta TAB a tastaturii (folosim robot.keyPress (KeyEvent.VK_TAB))
  • Pentru a apăsa tasta Enter folosim ( robot.keyPress (KeyEvent.VK_ENTER)).

Iată un exemplu de cod

import java.awt.AWTException;import java.awt.Robot;import java.awt.event.KeyEvent;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;clasa Exercițiu1 {public static main principal (String [] args) aruncă AWTException, InterruptedException {Driver WebDriver = nou FirefoxDriver ();driver.get ("http://spreadsheetpage.com/index.php/file/C35/P10/"); // eșantion de adresă URLdriver.findElement (By.xpath (".// a [@ href = contains (text (), 'annual-calendar.xls')]")). click ();Robot robot = robot nou (); // Clasa robotului lansează excepția AWTThread.sleep (2000); // Thread.sleep aruncă InterruptedExceptionrobot.keyPress (KeyEvent.VK_DOWN); // apăsați tasta săgeată în jos a tastaturii pentru a naviga și selectați butonul radio SalvareThread.sleep (2000); // somnul a fost folosit doar pentru a prezenta fiecare eveniment 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);// apăsați tasta Enter a tastaturii pentru a efectua deasupra acțiunii selectate}} 

Verificați acest videoclip pentru a-l vedea în acțiune

Cum se execută codul Robot Class folosind TestNG

Deoarece acum sunteți conștienți de metodele de bază ale clasei de roboți, deci să înțelegem câteva metode mai complexe

Să presupunem că nu doriți să utilizați metoda de clic pentru a face clic pe elementul web.

În astfel de cazuri, puteți utiliza metoda mouseMove din clasa Robot.

Pasul 1) metoda mouseMove ia coordonatele x și y ca parametri precum robot.mouseMove (630, 420) unde 630 indică axa x și 420 indică axa y. Deci, această metodă va muta indicatorul mouse-ului de la locația curentă la punctul de intersecție x și y menționat.

Pasul 2) Apoi, trebuie să apăsăm butonul mouse-ului. Putem folosi metoda mousePress ca robot.mousePress (InputEvent.BUTTON1_DOWN_MASK) .

Pasul 3) După apăsare, mouse-ul trebuie eliberat. Putem folosi robot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK ) pentru a elibera clic stânga al mouse-ului.

Rularea codului utilizând testNG:

Rularea codului folosind Testng necesită dependența maven a testNG sau a bibliotecii de referință a fișierului jar TestNG.

Dependența maven TestNG:

 org.testng  testng  6.1.1  

După adăugarea dependenței maven sau a fișierului jar. Trebuie să importați adnotarea test a testNG. După ce ați terminat, faceți clic dreapta pe codul programului și faceți clic pe Executare ca apoi faceți clic pe TestNG

… Și veți găsi că codul își va începe executarea folosind testNG API.

Iată codul

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;public class Excersise1 {@Testexecutarea publicului static static () aruncă InterruptedException, AWTException {Driver WebDriver = nou FirefoxDriver ();driver.manage (). window (). maximize ();driver.get ("http://spreadsheetpage.com/index.php/file/C35/P10/"); // eșantion de adresă URLRobot robot = robot nou ();robot.mouseMove (630, 420); // mutați punctul mouse-ului la o anumită locațierobot.delay (1500); // întârzierea este de a face codul să aștepte milisecundele menționate înainte de a executa pasul următorrobot.mousePress (InputEvent.BUTTON1_DOWN_MASK); // apăsați clic stângarobot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK); // eliberați clic stângarobot.delay (1500);robot.keyPress (KeyEvent.VK_DOWN); // apăsați tasta săgeată de la tastatură pentru a selecta butonul radio SalvareThread.sleep (2000);robot.keyPress (KeyEvent.VK_ENTER);// apăsați tasta Enter a tastaturii pentru a efectua deasupra acțiunii selectate}}

Verificați acest videoclip pentru a-l vedea în acțiune

Dezavantaje ale clasei de roboți

Cadrul robotului are câteva dezavantaje menționate mai jos:

  1. Evenimentul cuvânt cheie / mouse funcționează numai în cazul instanței curente a ferestrei. De exemplu, să presupunem că un cod efectuează orice eveniment de clasă robot și, în timpul executării codului, utilizatorul s-a mutat pe un alt ecran, atunci evenimentul cuvânt cheie / mouse va avea loc pe acel ecran.
  2. Majoritatea metodelor precum mouseMove depinde de rezoluția ecranului, astfel încât ar putea exista șansa ca codul care funcționează pe o mașină să nu funcționeze pe altul.

rezumat

Clasa de robot din pachetul AWT este utilizată pentru a genera evenimente de la tastatură / mouse pentru a interacționa cu Windows OS și aplicații native.

Scopul principal al robotului este de a sprijini construirea de proiecte de teste automatizate cu seleniu în platforma Java

Acest articol este contribuit de Ramandeep Singh, care este inginer de automatizare a testelor la un MNC de vârf.