Robot Class in Selenium Webdriver

Obsah:

Anonim

Robot Class

Robot Class in Selenium se používá k umožnění automatizovaného testování implementací platformy Java. Generuje vstupní události v nativních systémech pro automatizaci testů, samostatně běžící ukázky a další aplikace, kde uživatelé potřebují kontrolu nad myší a klávesnicí. Třída robotů se snadno implementuje a lze ji snadno integrovat do automatizovaného rámce.

Proč Robot Class?

Robot Class se používá v selenu, protože v určitých automatizačních testech selenu uživatelé potřebují kontrolu nad klávesnicí nebo myší pro interakci s okny OS, jako jsou vyskakovací okna pro stahování, vyskakovací okna pro tisk atd. A nativní aplikace, jako je poznámkový blok, kalkulačka atd. Webdriver tyto vyskakovací okna / aplikace nedokáže zpracovat, takže v prostředí Java verze 1.3 byla zavedena třída robotů, která dokáže zpracovat vyskakovací okna / aplikace OS.

V tomto výukovém programu se naučíte,

  • Výhody třídy robotů
  • Dokumentace třídy robota
  • Porozumění interním metodám a použití třídy robota
  • Jak spustit kód třídy robota pomocí testNG
  • Nevýhody třídy robotů

Výhody třídy robotů

  1. Robot Class může simulovat událost klávesnice a myši
  2. Robot Class může pomoci při nahrávání / stahování souborů při použití webového ovladače selenu
  3. Robot Class lze snadno integrovat do aktuálního automatizačního rámce (klíčové slovo, data řízený nebo hybridní)

Co je dokumentace třídy robotů?

Dokumentace Robot Class v Selen pomáhá uživatelům pochopit základní definice, syntaxi a použití všech metod a funkce jsou k dispozici ve třídě robotů v Java AWT balíku. Uživatelé si mohou dokumentaci prohlédnout na oficiálních webových stránkách Oracle. Uživatelé mohou také vytvořit dokumentaci na svém místním počítači sami.

Chcete-li vytvořit dokumentaci na místním počítači, postupujte takto:

Krok 1) Soubor src.zip najdete ve složce JDK. Zkopírujte src.zip a extrahujte to do jiné složky nebo adresáře (řekněme D: nebo E :)

Krok 2) Extrahujte složku src a přejděte do (cesta do složky src) / src / java / awt

Krok 3) Zkopírujte aktuální umístění složky awt a otevřete příkazový řádek.

Krok 4) V cmd změňte aktuální umístění adresáře na složku awt a zadejte 'javadoc * .java', jak je uvedeno níže

Chvíli počkejte, až se systém zpracuje, po dokončení uvidíte ve složce awt několik souborů HTML.

Krok 5) Otevřete index.html

Krok 6) Zde máte úplnou dokumentaci balíčku awt, na levém navigačním panelu klikněte na hypertextový odkaz „Robot“ (viz 1 označený na obrázku níže).

Zde také vidíte všechny metody a rozhraní třídy robotů (viz 2 označené na obrázku výše).

Porozumění interním metodám a použití třídy robota

Metody třídy robota lze použít k interakci s událostmi klávesnice / myši při automatizaci prohlížeče. Alternativně lze použít AutoIT, ale jeho nevýhodou je, že generuje spustitelný soubor (exe), který bude fungovat pouze v systému Windows, takže není dobrá volba.

Některé běžně a populárně používané metody třídy robotů během webové automatizace:

  • keyPress (): Příklad: robot.keyPress (KeyEvent.VK_DOWN): Tato metoda s klávesou se šipkou dolů na klávesnici
  • mousePress (): Příklad : robot.mousePress (InputEvent.BUTTON3_DOWN_MASK): Tato metoda stiskne pravé tlačítko myši.
  • mouseMove (): Příklad : robot.mouseMove (point.getX (), point.getY ()): Tím se přesune ukazatel myši na zadané souřadnice X a Y.
  • keyRelease (): Příklad: robot.keyRelease (KeyEvent.VK_DOWN): Tato metoda s klávesou šipka dolů uvolnění klávesnice
  • mouseRelease (): Příklad: robot.mouseRelease (InputEvent.BUTTON3_DOWN_MASK): Tato metoda uvolní pravé kliknutí myši

Ukázkový kód k automatizaci běžných případů použití pomocí třídy robota

  • Vezměme si příklad webové stránky http://spreadsheetpage.com/index.php/file/C35/P10/, kde po kliknutí na webový prvek ( .//a[@href=contains(text(),'yearly- calendar.xls '] ) objeví se vyskakovací okno pro stažení OS.
  • Abychom to zvládli, používáme třídu Robot (vytvořením instance třídy Robot ve vašem kódu řekněme Robot robot = nový Robot () ). Třída robotů nás představuje v AWT balíčku JDK.
  • Ke stisknutí klávesy se šipkou dolů na klávesnici používáme ( robot.keyPress (KeyEvent.VK_DOWN))
  • Chcete-li stisknout klávesu TAB na klávesnici (používáme robot.keyPress (KeyEvent.VK_TAB))
  • Ke stisknutí klávesy Enter používáme ( robot.keyPress (KeyEvent.VK_ENTER)).

Zde je ukázkový kód

import java.awt.AWTException;importovat java.awt.Robot;import java.awt.event.KeyEvent;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;třída Cvičení1 {public static void main (String [] args) hodí AWTException, InterruptedException {Ovladač WebDriver = nový FirefoxDriver ();driver.get ("http://spreadsheetpage.com/index.php/file/C35/P10/"); // ukázková adresa URLdriver.findElement (By.xpath (".// a [@ href = contains (text (), 'yearly-calendar.xls')]"))). click ();Robot robot = nový Robot (); // Třída robotů vyvolá výjimku AWTThread.sleep (2000); // Thread.sleep hodí InterruptedExceptionrobot.keyPress (KeyEvent.VK_DOWN); // stiskněte klávesu šipka dolů pro procházení a vyberte přepínač UložitThread.sleep (2000); // režim spánku byl použit pouze k prezentaci každé události samostatněrobot.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);// stisknutím klávesy Enter na klávesnici provedete výše vybranou akci}} 

Podívejte se na toto video a podívejte se na něj v akci

Jak spustit kód třídy robota pomocí TestNG

Vzhledem k tomu, že jste si nyní vědomi základních metod třídy Robot Class, pochopme několik složitějších metod -

Předpokládejme, že nechcete použít metodu kliknutí pro klikání na webový prvek.

V takových případech můžete použít metodu mouseMove třídy Robot.

Krok 1) metoda mouseMove bere souřadnice xay jako parametry jako robot.mouseMove (630, 420), kde 630 označuje osu x a 420 označuje osu y. Tato metoda tedy přesune ukazatel myši z aktuálního umístění do uvedeného průsečíku xay.

Krok 2) Dále musíme stisknout tlačítko myši. Můžeme použít metodu mousePress jako robot.mousePress (InputEvent.BUTTON1_DOWN_MASK) .

Krok 3) Po stisknutí je třeba uvolnit myš. Můžeme použít robot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK ) k uvolnění levého kliknutí myší.

Spuštění kódu pomocí testNG:

Spuštění kódu pomocí Testng vyžaduje závislost závislost testNG nebo odkazované knihovny souboru jar TestNG.

Závislost TestNG maven:

 org.testng  test  6.1.1  

Po přidání závislost maven nebo jar soubor. Musíte importovat testovací anotaci testNG. Jakmile je vše hotové, stačí kliknout pravým tlačítkem na programový kód a kliknout na Spustit jako a poté na TestNG

… A zjistíte, že kód zahájí provádění pomocí rozhraní testNG API.

Tady je kód

import java.awt.AWTException;importovat 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;veřejná třída Cvičení1 {@Testpublic static void execution () vyvolá InterruptedException, AWTException {Ovladač WebDriver = nový FirefoxDriver ();driver.manage (). window (). maximize ();driver.get ("http://spreadsheetpage.com/index.php/file/C35/P10/"); // ukázková adresa URLRobot robot = nový Robot ();robot.mouseMove (630, 420); // přesune bod myši na konkrétní místorobot.delay (1500); // zpoždění znamená nechat kód čekat na uvedené milisekundy před provedením dalšího krokurobot.mousePress (InputEvent.BUTTON1_DOWN_MASK); // stiskněte levé tlačítkorobot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK); // uvolnění levého kliknutírobot.delay (1500);robot.keyPress (KeyEvent.VK_DOWN); // stisknutím klávesy se šipkou vyberte přepínač UložitThread.sleep (2000);robot.keyPress (KeyEvent.VK_ENTER);// stisknutím klávesy Enter na klávesnici provedete výše vybranou akci}}

Podívejte se na toto video a podívejte se na něj v akci

Nevýhody třídy robotů

Robotický rám má několik níže uvedených nevýhod:

  1. Událost Klíčové slovo / myš bude fungovat pouze na aktuální instanci okna. Předpokládejme například, že kód provádí jakoukoli událost třídy robota a během provádění kódu se uživatel přesunul na jinou obrazovku, poté se na této obrazovce objeví událost klíčového slova / myši.
  2. Většina metod jako mouseMove závisí na rozlišení obrazovky, takže může existovat šance, že kód fungující na jednom počítači nemusí fungovat na jiném.

souhrn

Třída robota v balíčku AWT se používá ke generování událostí klávesnice / myši pro interakci s okny OS a nativními aplikacemi.

Primárním účelem Robot je podpora selenového projektu automatických testů sestaveného na platformě Java

K tomuto článku přispěl Ramandeep Singh, který je technikem automatizace testů v předním MNC.