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
- A Robot Class képes szimulálni a billentyűzet és egér eseményt
- 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
- 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:
- 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.
- 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.