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ů
- Robot Class může simulovat událost klávesnice a myši
- Robot Class může pomoci při nahrávání / stahování souborů při použití webového ovladače selenu
- 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:
- 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.
- 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.