Trieda robotov v selenovom webdriveri

Obsah:

Anonim

Trieda robotov

Robot Class in Selenium sa používa na umožnenie automatizovaného testovania implementácií platformy Java. Generuje vstupné udalosti v natívnych systémoch pre automatizáciu testov, samostatne spustiteľné ukážky a ďalšie aplikácie, kde používatelia potrebujú kontrolu nad myšou a klávesnicou. Robotická trieda sa ľahko implementuje a dá sa ľahko integrovať do automatizovaného rámca.

Prečo Robot Class?

Robot Class sa používa v seléne, pretože pri určitých automatizačných testoch selénu potrebujú používatelia kontrolu nad klávesnicou alebo myšou na interakciu s oknami operačného systému, ako sú kontextové okná pre stiahnutie, kontextové okná pre tlač atď. A natívne aplikácie, ako je poznámkový blok, kalkulačka atď. Webdriver nedokáže spracovať tieto automaticky otvárané okná / aplikácie, takže v prostredí Java verzie 1.3 bola predstavená trieda robotov, ktorá dokáže pracovať s automaticky otváranými oknami / aplikáciami OS.

V tomto návode sa dozviete,

  • Výhody triedy robotov
  • Dokumentácia triedy robotov
  • Pochopenie interných metód a použitia triedy Robot Class
  • Ako spustiť kód triedy robota pomocou testNG
  • Nevýhody triedy robotov

Výhody triedy robotov

  1. Trieda robotov dokáže simulovať udalosť klávesnice a myši
  2. Robot Class vám môže pomôcť s nahrávaním / sťahovaním súborov pri použití webového ovládača selénu
  3. Triedu robotov je možné ľahko integrovať do súčasného automatizačného rámca (kľúčové slovo, dátovo riadený alebo hybridný)

Čo je dokumentácia triedy robota?

Dokumentácia Robot Class v Selén pomáha používateľom pochopiť základné definície, syntax a použitia všetkých metód a funkcie sú k dispozícii v triede robotov v Java AWT balíku. Používatelia si môžu pozrieť dokumentáciu na oficiálnych webových stránkach spoločnosti Oracle. Používatelia môžu tiež vytvoriť dokumentáciu na svojom lokálnom počítači sami.

Ak chcete vytvoriť dokumentáciu na lokálnom počítači, postupujte takto:

Krok 1) Súbor src.zip nájdete v priečinku JDK. Skopírujte src.zip a extrahujte to isté do iného priečinka alebo adresára (povedzme D: alebo E:)

Krok 2) Extrahujte priečinok src a prejdite na (cesta do priečinka src) / src / java / awt

Krok 3) Skopírujte aktuálne umiestnenie priečinka awt a otvorte príkazový riadok.

Krok 4) V cmd zmeňte svoje súčasné umiestnenie adresára na priečinok awt a zadajte „javadoc * .java“, ako je uvedené nižšie.

Chvíľu počkajte, kým sa systém spracuje, po dokončení uvidíte v priečinku awt niekoľko súborov HTML.

Krok 5) Otvorte index.html

Krok 6) Tu máte kompletnú dokumentáciu k balíku awt. Na ľavom navigačnom paneli kliknite na hypertextový odkaz „Robot“ (pozri 1 vyznačený na obrázku nižšie).

Tu tiež môžete vidieť všetky metódy a rozhrania triedy robotov (pozri 2 označené na obrázku vyššie).

Pochopenie interných metód a použitia triedy Robot Class

Metódy robotickej triedy je možné použiť na interakciu s udalosťami klávesnice / myši pri automatizácii prehliadača. Alternatívne je možné použiť AutoIT, jeho nevýhodou však je, že generuje spustiteľný súbor (exe), ktorý bude fungovať iba v systéme Windows, takže nie je vhodná voľba na použitie.

Niektoré bežne a populárne používané metódy triedy Robot Class počas automatizácie webu:

  • keyPress (): Príklad: robot.keyPress (KeyEvent.VK_DOWN): Táto metóda pomocou stlačenej šípky nadol na klávesnici
  • mousePress (): Príklad : robot.mousePress (InputEvent.BUTTON3_DOWN_MASK): Táto metóda stlačí pravé tlačidlo myši.
  • mouseMove (): Príklad : robot.mouseMove (point.getX (), point.getY ()): Týmto sa presunie ukazovateľ myši na zadané súradnice X a Y.
  • keyRelease (): Príklad: robot.keyRelease (KeyEvent.VK_DOWN): Táto metóda s klávesom so šípkou nadol uvoľnenia klávesnice
  • mouseRelease (): Príklad: robot.mouseRelease (InputEvent.BUTTON3_DOWN_MASK): Táto metóda uvoľní pravé kliknutie myši

Ukážkový kód na automatizáciu bežných prípadov použitia pomocou triedy robotov

  • Vezmime si napríklad webovú stránku http://spreadsheetpage.com/index.php/file/C35/P10/, kde po kliknutí na webový prvok ( .//a[@href=contains(text(),'rok- calendar.xls '] )) sa zobrazí vyskakovacie okno na stiahnutie OS.
  • Aby sme to zvládli, používame triedu Robot (vytvorením inštancie triedy Robot v kóde povedzme Robot robot = nový Robot () ). Trieda robotov nás predstavuje v AWT balíku JDK.
  • Na stlačenie klávesu so šípkou nadol na klávesnici používame ( robot.keyPress (KeyEvent.VK_DOWN))
  • Na stlačenie klávesu TAB na klávesnici (používame robot.keyPress (KeyEvent.VK_TAB))
  • Na stlačenie klávesu Enter používame ( robot.keyPress (KeyEvent.VK_ENTER)).

Tu je ukážka kódu

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;trieda Cvičenie1 {public static void main (String [] args) hodí AWTException, InterruptedException {Ovládač WebDriver = nový FirefoxDriver ();driver.get ("http://spreadsheetpage.com/index.php/file/C35/P10/"); // vzorova urldriver.findElement (By.xpath (".// a [@ href = contains (text (), 'yearly-calendar.xls')]"))). click ();Robot robot = nový Robot (); // Trieda robotov vyvolá výnimku AWTThread.sleep (2000); // Thread.sleep hodí InterruptedExceptionrobot.keyPress (KeyEvent.VK_DOWN); // stlačte kláves so šípkou nadol na klávesnici pre navigáciu a vyberte prepínač UložiťThread.sleep (2000); // spánok sa použil iba na prezentáciu každej udalosti osobitnerobot.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);// stlačením klávesu Enter vykonáte vyššie vybranú akciu}} 

Skontrolujte toto video a uvidíte ho v akcii

Ako spustiť kód triedy robota pomocou TestNG

Pretože ste si teraz vedomí základných metód Robot Class, tak poďme pochopiť niekoľko zložitejších metód -

Predpokladajme, že nechcete používať metódu klikania na klikanie na webový prvok.

V takýchto prípadoch môžete použiť metódu mouseMove triedy Robot.

Krok 1) metóda mouseMove berie súradnice x a y ako parametre ako robot.mouseMove (630, 420), kde 630 označuje os x a 420 označuje os y. Táto metóda teda presunie kurzor myši z aktuálneho umiestnenia na spomínaný priesečník x a y.

Krok 2) Ďalej musíme stlačiť tlačidlo myši. Môžeme použiť metódu mousePress ako robot.mousePress (InputEvent.BUTTON1_DOWN_MASK) .

Krok 3) Po stlačení musí byť myš uvoľnená. Na uvoľnenie ľavého kliknutia myši môžeme použiť robot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK ).

Spustený kód pomocou testNG:

Spustenie kódu pomocou Testng vyžaduje závislosť testu testNG alebo odkazovanú knižnicu súboru jar TestNG.

Závislosť TestNG maven:

 org.testng  testovanie  6.1.1  

Po pridaní závislosti alebo súboru jar. Musíte importovať anotáciu testu testNG. Akonáhle je všetko hotové, stačí kliknúť pravým tlačidlom myši na programový kód a kliknúť na Spustiť ako a potom kliknúť na TestNG

... a zistíte, že kód začne svoju implementáciu pomocou testNG API.

Tu je kód

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;verejná trieda Cvičenie1 {@Testpublic static void execution () hodí InterruptedException, AWTException {Ovládač WebDriver = nový FirefoxDriver ();driver.manage (). window (). maximize ();driver.get ("http://spreadsheetpage.com/index.php/file/C35/P10/"); // vzorova urlRobot robot = nový Robot ();robot.mouseMove (630, 420); // presunutie bodu myši na konkrétne miestorobot.delay (1500); // oneskorenie znamená nechať kód čakať uvedených milisekúnd pred vykonaním ďalšieho krokurobot.mousePress (InputEvent.BUTTON1_DOWN_MASK); // stlačte ľavé kliknutierobot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK); // uvoľnenie ľavého kliknutiarobot.delay (1500);robot.keyPress (KeyEvent.VK_DOWN); // stlačte kláves so šípkou na klávesnici a vyberte prepínač UložiťThread.sleep (2000);robot.keyPress (KeyEvent.VK_ENTER);// stlačením klávesu Enter vykonáte vyššie vybranú akciu}}

Skontrolujte toto video a uvidíte ho v akcii

Nevýhody triedy robota

Robotický rám má niekoľko nevýhod spomenutých nižšie:

  1. Udalosť Kľúčové slovo / myš bude fungovať iba na aktuálnej inštancii okna. Napríklad predpokladajme, že kód vykonáva ľubovoľnú udalosť triedy robota a počas vykonávania kódu sa používateľ presunul na inú obrazovku, potom sa na tejto obrazovke vyskytne udalosť kľúčového slova / myši.
  2. Väčšina metód ako mouseMove závisí od rozlíšenia obrazovky, takže môže existovať šanca, že kód fungujúci na jednom počítači nemusí fungovať na druhom.

Zhrnutie

Trieda robota v balíku AWT sa používa na generovanie udalostí klávesnice / myši na interakciu s oknami OS a natívnymi aplikáciami.

Primárnym účelom Robot je podpora projektu selénových automatizovaných testov zostavených na platforme Java

Do tohto článku prispieva Ramandeep Singh, ktorý je inžinierom automatizácie testovania v poprednom MNC.