Robot osztály szelén webdriverben

Tartalomjegyzék:

Anonim

Robot osztály

A szelénben található robot osztály lehetővé teszi a Java platform implementációinak automatizált tesztelését. Bemeneti eseményeket generál natív rendszerekben a teszt automatizáláshoz, az önfuttató demókhoz és más alkalmazásokhoz, ahol a felhasználóknak szükségük van az egér és a billentyűzet vezérlésére. A robot osztály könnyen megvalósítható, és könnyen integrálható egy automatizált keretrendszerrel.

Miért robot osztály?

A Selenium robotosztályát azért használják, mert bizonyos szelén automatizálási tesztekben a felhasználóknak szükségük van a billentyűzet vagy az egér irányítására, hogy kölcsönhatásba lépjenek az operációs rendszer ablakokkal, például a felugró ablakok letöltésével, a felugró ablakok nyomtatásával stb., Valamint a natív alkalmazásokkal, például a jegyzettömbbel, a számológéppel stb. A Webdriver nem tudja kezelni ezeket az előugró ablakokat / alkalmazásokat, ezért a Java 1.3-as verziójában bevezették a robot osztályt, amely képes kezelni az operációs rendszer felugró ablakait / alkalmazásait.

Ebben az oktatóanyagban megtanulod,

  • A robot osztály előnyei
  • A robot osztály dokumentációja
  • A robotosztály belső módszereinek és használatának megértése
  • Hogyan lehet végrehajtani a robot osztály kódját a testNG használatával
  • A robot osztály hátrányai

A robot osztály előnyei

  1. A Robot Class képes szimulálni a billentyűzet és egér eseményt
  2. A robot osztály segít a fájlok feltöltésében / letöltésében, amikor a szelén webes illesztőprogramot használja
  3. A robotosztály könnyen integrálható a jelenlegi automatizálási keretrendszerbe (kulcsszó, adatközpontú vagy hibrid)

Mi az a robot osztály dokumentáció?

A szelénben található robot osztály dokumentáció segít a felhasználóknak megérteni a robot osztályban elérhető összes módszer és funkció alapvető definícióját, szintaxisát és használatát a Java AWT csomagban. A felhasználók megtekinthetik a dokumentációt az Oracle hivatalos webhelyén. A felhasználók a saját gépükön is létrehozhatják a dokumentációt.

A helyi gép dokumentációjának létrehozásához kövesse az alábbi lépéseket:

1. lépés : Az src.zip fájlt a JDK mappában találja meg. Másolja az src.zip fájlt, és nyissa ki ugyanezt egy másik mappába vagy könyvtárba (mondjuk D: vagy E:)

2. lépés: Bontsa ki az src mappát, és keresse meg az (elérési út az src mappáig) / src / java / awt

3. lépés: Másolja az awt mappa aktuális helyét, és nyissa meg a parancssort.

4. lépés: cmd-ben változtassa meg a jelenlegi könyvtár helyét awt mappára, és írja be a „javadoc * .java” parancsot

Várjon egy kicsit a rendszer feldolgozásáig. Ha elkészült, néhány HTML-fájlt fog látni az awt mappában.

5. lépés: Nyissa meg az index.html fájlt

6. lépés: Itt van az awt csomag teljes dokumentációja, a bal oldali navigációs sávon kattintson a "Robot" hiperhivatkozásra (lásd az 1. ábrán jelöltet).

Itt láthatja a Robot osztály összes módszerét és interfészét (lásd a fenti képen megjelölt 2-et).

A robotosztály belső módszereinek és használatának megértése

A Robot Class módszerek használhatók a billentyűzet / egér eseményekkel való interakcióra a böngésző automatizálása közben. Alternatív megoldásként az AutoIT is használható, de hátránya, hogy egy futtatható fájlt (exe) generál, amely csak Windows rendszeren fog működni, így nem jó a használata.

A Robot Class néhány általánosan használt és népszerű módszere a web automatizálás során:

  • keyPress (): Példa: robot.keyPress (KeyEvent.VK_DOWN): Ez a módszer a billentyűzet lefelé mutató nyíl gombjának megnyomásával
  • mousePress (): Példa : robot.mousePress (InputEvent.BUTTON3_DOWN_MASK): Ez a módszer megnyomja az egér jobb gombját.
  • mouseMove (): Példa : robot.mouseMove (point.getX (), point.getY ()): Ezzel az egérmutató a megadott X és Y koordinátákra kerül.
  • keyRelease (): Példa: robot.keyRelease (KeyEvent.VK_DOWN): Ez a módszer a billentyűzet lefelé mutató nyílgombjával
  • mouseRelease (): Példa: robot.mouseRelease (InputEvent.BUTTON3_DOWN_MASK): Ezzel a módszerrel az egér jobb gombjával kattinthat

Minta kód a közös használatú esetek automatizálásához a Robot Class használatával

  • Vegyünk példát a http://spreadsheetpage.com/index.php/file/C35/P10/ webhelyre, ahol miután rákattintott egy webelemre ( .//a[@href=con((text(),'ylyly- calendar.xls '] ) megjelenik egy operációs rendszer letöltési előugró ablak.
  • Ennek kezeléséhez a Robot osztályt használjuk (létrehozva a kódban a Robot Class példányát, mondjuk Robot robot = new Robot () ). Robot osztály minket jelen van a JDK AWT csomagjában.
  • Az általunk használt billentyűzet nyíl gombjának lenyomásához ( robot.keyPress (KeyEvent.VK_DOWN))
  • A billentyűzet TAB gombjának megnyomásához (a robot.keyPress (KeyEvent.VK_TAB) parancsot használjuk)
  • Az Enter billentyű lenyomásához használjuk ( robot.keyPress (KeyEvent.VK_ENTER)).

Itt van egy minta kód

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;osztály Exercise1 {public static void main (String [] args) dobja az AWTException, InterruptedException {WebDriver illesztőprogram = new FirefoxDriver ();driver.get ("http://spreadsheetpage.com/index.php/file/C35/P10/"); // minta URLdriver.findElement (By.xpath (".// a [@ href = tartalmaz (text (), 'éves-calendar.xls')]" ")). kattintson ();Robot robot = új Robot (); // A robot osztály dobja az AWT kivételeketSzál.alszik (2000); // Thread.sleep dobja az InterruptedException-trobot.keyPress (KeyEvent.VK_DOWN); // a navigáláshoz nyomja meg a billentyűzet nyíl lefelé gombját, és válassza a Mentés választógombotSzál.alszik (2000); // az alvást csak az egyes események külön bemutatására használtákrobot.keyPress (KeyEvent.VK_TAB);Szál.alszik (2000);robot.keyPress (KeyEvent.VK_TAB);Szál.alszik (2000);robot.keyPress (KeyEvent.VK_TAB);Szál.alszik (2000);robot.keyPress (KeyEvent.VK_ENTER);// nyomja meg az Enter billentyűt a kiválasztott művelet végrehajtásához}} 

Ellenőrizze ezt a videót, hogy működés közben lássa

Hogyan lehet végrehajtani a Robot Class kódot a TestNG használatával

Mivel, most már ismeri a robot osztály alapvető módszereit, értsünk meg néhány összetettebb módszert -

Tegyük fel, hogy nem a kattintási módszert szeretné használni a webes elemre történő kattintáshoz.

Ilyen esetekben használhatja a Robot osztály mouseMove módszerét.

1. lépés: mouseMove módszer x és y koordinátákat vesz paraméterként, például robot.mouseMove (630, 420), ahol 630 az x tengelyt, a 420 pedig az y tengelyt jelöli. Tehát ez a módszer az egérmutatót az aktuális helyről az említett x és y metszéspontra mozgatja.

2. lépés) Ezután meg kell nyomnunk az egérgombot. Használhatjuk az mousePress módszert, mint a robot.mousePress (InputEvent.BUTTON1_DOWN_MASK) .

3. lépés: Nyomás után el kell engedni az egeret. Használhatjuk a robot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK ) parancsot az egér bal kattintásának feloldásához.

Futó kód a testNG használatával:

A kód futtatásához a Testng segítségével megköveteli a testNG vagy a TestNG jar fájl hivatkozott könyvtárának függőségét.

TestNG maven függőség:

 org.testng  testng  6.1.1  

Maven függőség vagy jar fájl hozzáadása után. Importálni kell a testNG Teszt jegyzetét. Miután mindez elkészült, kattintson a jobb gombbal a programkódra, majd kattintson a Futtatás parancsra, majd a TestNG elemre

... és rájön, hogy a kód a testNG API használatával kezdi meg a végrehajtását.

Itt van a 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;nyilvános osztály Excersise1 {@Tesztpublic static void végrehajtás () dobja az InterruptedException, AWTException {WebDriver illesztőprogram = new FirefoxDriver ();driver.manage (). window (). maximize ();driver.get ("http://spreadsheetpage.com/index.php/file/C35/P10/"); // minta URLRobot robot = új Robot ();robot.mouseMove (630, 420); // mozgassa az egérmutatót egy adott helyrerobot.késleltetés (1500); // a késleltetés az, hogy a kódot várni kell az említett milliszekundumokra a következő lépés végrehajtása előttrobot.mousePress (InputEvent.BUTTON1_DOWN_MASK); // nyomja meg a bal oldali kattintástrobot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK); // engedje el a bal kattintástrobot.késleltetés (1500);robot.keyPress (KeyEvent.VK_DOWN); // nyomja meg a billentyűzet nyíl gombját a Mentés választógomb kiválasztásáhozSzál.alszik (2000);robot.keyPress (KeyEvent.VK_ENTER);// nyomja meg az Enter billentyűt a kiválasztott művelet végrehajtásához}}

Ellenőrizze ezt a videót, hogy működés közben lássa

A robot osztály hátrányai

A robotkeretnek néhány hátránya van az alábbiakban:

  1. A kulcsszó / egér esemény csak az ablak aktuális példányán működik. Tegyük fel például, hogy egy kód bármilyen robot osztályú eseményt hajt végre, és a kód végrehajtása során a felhasználó átköltözött egy másik képernyőre, akkor kulcsszó / egér esemény fog bekövetkezni ezen a képernyőn.
  2. A legtöbb módszer, mint például az mouseMove, képernyőfelbontástól függ, így előfordulhat, hogy az egyik gépen működő kód nem működik másikon.

Összegzés

Az AWT csomag robot osztálya billentyűzet / egér események generálására szolgál, amelyek kölcsönhatásba lépnek az operációs rendszer ablakokkal és a natív alkalmazásokkal.

A Robot elsődleges célja a szelén automatizált tesztprojektek támogatása a Java platformon

Ehhez a cikkhez Ramandeep Singh írt, aki a vezető MNC tesztautomatikus mérnöke.