Robot Class in Selenium Webdriver
U čemu je Robot Class Selenium?
Klasa robota in Selenium koristi se za omogućavanje automatiziranog testiranja implementacija Java platforma. Generira ulazne događaje u izvornim sustavima za automatizaciju testiranja, demonstracije koje se samostalno pokreću i druge aplikacije u kojima korisnici trebaju kontrolu nad mišem i tipkovnicom. Klasa robota je jednostavna za implementaciju i može se lako integrirati s automatiziranim okvirom.
Zašto Robot Class?
Klasa robota koristi se u Selenium jer, u određenim Selenium testovima automatizacije, korisnici trebaju kontrolu nad tipkovnicom ili mišem za interakciju s OS prozorima kao što su skočni prozori za preuzimanje, skočni prozori za ispis itd. i izvornim aplikacijama kao što su bilježnica, kalkulator itd. Selenium Webdriver ne može podnijeti ove skočne prozore/aplikacije, pa u Java verzija 1.3, uvedena je klasa robota koja može rukovati skočnim prozorima/aplikacijama OS-a.
Dokumentacija o klasi robota
Korištenje električnih romobila ističe Dokumentacija o klasi robota in Selenium pomaže korisnicima razumjeti osnovnu definiciju, sintaksu i korištenje svih metoda i funkcija dostupnih u klasi robota Java AWT paket. Korisnici mogu pogledati dokumentaciju na Službenik Oracle web stranicu. Korisnici također mogu sami izraditi dokumentaciju na svom lokalnom računalu.
Da biste izradili dokumentaciju na lokalnom računalu, slijedite korake u nastavku-
Korak 1) Datoteku src.zip pronaći ćete u mapi JDK. Kopirajte src.zip i ekstrahirajte isti u neku drugu mapu ili direktorij (recimo D: ili E: )
Korak 2) Izdvojite src mapu i idite do (put do src mape)/src/java/awt
Korak 3) Kopirajte trenutnu lokaciju mape awt i otvorite naredbeni redak.
Korak 4) U cmd promijenite svoju trenutnu lokaciju direktorija u mapu awt i upišite 'javadoc *.java' kao što je prikazano u nastavku
Pričekajte neko vrijeme da sustav obradi, nakon dovršetka vidjet ćete nekoliko HTML datoteka u mapi awt.
Korak 5) Otvorite index.html
Korak 6) Ovdje imate potpunu dokumentaciju paketa awt, na lijevoj navigacijskoj traci kliknite hipervezu 'Robot' (pogledajte 1 označenu na slici ispod).
Ovdje također možete vidjeti sve metode i sučelja Robot Class (Pogledajte 2 označena na gornjoj slici).
Metode klase robota u Selenium i Korištenje
Metode Robot Class mogu se koristiti za interakciju s događajima tipkovnice/miša tijekom automatizacije preglednika. Alternativno AutoIT može se koristiti, ali nedostatak mu je što generira izvršnu datoteku (exe) koja će raditi samo na Windowsima, tako da nije dobra opcija za korištenje.
Neke često i popularno korištene metode Robot Class tijekom web automatizacije:
Metoda 1: keyPress():
robot.keyPress(KeyEvent.VK_DOWN): Ova metoda s pritiskom tipke sa strelicom prema dolje na tipkovnici
Metoda 2: mousePress():
robot.mousePress(InputEvent.BUTTON3_DOWN_MASK): Ova metoda će pritisnuti desni klik vašeg miša.
Metoda 3: mouseMove():
robot.mouseMove(point.getX(), point.getY()): Ovo će pomaknuti pokazivač miša na navedene X i Y koordinate.
Metoda 4: keyRelease():
robot.keyRelease(KeyEvent.VK_DOWN): Ova metoda s otpuštanjem tipke sa strelicom prema dolje na tipkovnici
Metoda 5: mouseRelease():
robot.mouseRelease(InputEvent.BUTTON3_DOWN_MASK): Ova metoda će osloboditi desni klik vašeg miša
Uzorak koda za automatizaciju uobičajenih slučajeva upotrebe koristeći Robot Class
- Uzmimo primjer web stranice http://spreadsheetpage.com/index.php/file/C35/P10/ gdje nakon što kliknete na web element (
.//a[@href=contains(text(),'yearly-calendar.xls']
) pojavljuje se skočni prozor za preuzimanje OS-a.
- Da bismo to riješili, koristimo klasu robota (stvaranjem instance klase robota u vašem kodu, recimo Robot robot = novi Robot()) . Klasa robota prisutna je u AWT paketu JDK.
Tipkovnica | način |
---|---|
Pritisnite tipku sa strelicom prema dolje | koristimo (robot.keyPress(KeyEvent.VK_DOWN)) |
Pritisnite tipku TAB | koristimo (robot.keyPress(KeyEvent.VK_TAB)) |
Da pritisnete tipku Enter | koristimo (robot.keyPress(KeyEvent.VK_ENTER)) |
Primjer klase robota u Selenium
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; class Excercise1 { public static void main(String[] args) throws AWTException, InterruptedException { WebDriver driver = new FirefoxDriver(); driver.get("http://spreadsheetpage.com/index.php/file/C35/P10/"); // sample url driver.findElement(By.xpath(".//a[@href=contains(text(),'yearly-calendar.xls')]")).click(); Robot robot = new Robot(); // Robot class throws AWT Exception Thread.sleep(2000); // Thread.sleep throws InterruptedException robot.keyPress(KeyEvent.VK_DOWN); // press arrow down key of keyboard to navigate and select Save radio button Thread.sleep(2000); // sleep has only been used to showcase each event separately 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); // press enter key of keyboard to perform above selected action } }
Pogledajte ovaj video kako biste ga vidjeli na djelu
Kako izvršiti kod Robot Class pomoću TestNG
Budući da ste sada upoznati s osnovnim metodama Robot Class-a, shvatit ćemo nekoliko složenijih metoda –
Pretpostavimo da ne želite koristiti način klika za klik na web element.
U takvim slučajevima možete koristiti metodu mouseMove klase Robot.
Korak 1) metoda mouseMove uzima x i y koordinate kao parametre poput robot.mouseMove(630, 420) gdje 630 označava x-os, a 420 označava y-os. Dakle, ova metoda će pomaknuti vaš pokazivač miša s trenutne lokacije na spomenutu x i y točku sjecišta.
Korak 2) Zatim moramo pritisnuti tipku miša. Možemo koristiti metodu mousePress kao robot.mousePress(InputEvent.BUTTON1_DOWN_MASK) .
Korak 3) Nakon pritiska, miš treba pustiti. Možemo koristiti robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK) kako biste otpustili lijevi klik miša.
Pokretanje koda pomoću testNG:
Pokretanje koda pomoću Testng zahtijeva maven ovisnost o testNG ili referentnoj biblioteci TestNG jar datoteka.
TestNG ovisnost o mavenu:
<dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>6.1.1</version> </dependency>
Nakon dodavanja maven ovisnosti ili jar datoteke. Morate uvesti testnu napomenu za testNG. Nakon što je sve gotovo, samo kliknite desnom tipkom miša na programski kod i kliknite na Run As, a zatim kliknite na TestNG… i vidjet ćete da će kod započeti svoje izvršavanje koristeći testNG API.
Evo koda
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; public class Excersise1 { @Test public static void execution() throws InterruptedException, AWTException { WebDriver driver = new FirefoxDriver(); driver.manage().window().maximize(); driver.get("http://spreadsheetpage.com/index.php/file/C35/P10/"); // sample url Robot robot = new Robot(); robot.mouseMove(630, 420); // move mouse point to specific location robot.delay(1500); // delay is to make code wait for mentioned milliseconds before executing next step robot.mousePress(InputEvent.BUTTON1_DOWN_MASK); // press left click robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK); // release left click robot.delay(1500); robot.keyPress(KeyEvent.VK_DOWN); // press keyboard arrow key to select Save radio button Thread.sleep(2000); robot.keyPress(KeyEvent.VK_ENTER); // press enter key of keyboard to perform above selected action } }
Pogledajte ovaj video kako biste ga vidjeli na djelu
Prednosti Robot Classa
- Robot Class može simulirati događaj tipkovnice i miša
- Robot Class može pomoći u učitavanju/preuzimanju datoteka kada se koristi selenium web upravljački program
- Robot Class može se lako integrirati s trenutnim okvirom automatizacije (ključnom riječi, podacima ili hibridom)
Nedostaci Robot Class
Robotski okvir ima nekoliko nedostataka navedenih u nastavku:
- Događaj ključne riječi/miša radit će samo na trenutnoj instanci Windowa. Npr. pretpostavimo da kôd izvodi bilo koji događaj klase robota, a tijekom izvođenja koda korisnik se pomaknuo na neki drugi zaslon, a tada će se na tom zaslonu dogoditi događaj ključne riječi/miša.
- Većina metoda kao što je mouseMove ovisi o razlučivosti zaslona pa postoji mogućnost da kod koji radi na jednom računalu ne radi na drugom.
rezime
Klasa robota u paketu AWT koristi se za generiranje događaja tipkovnice/miša za interakciju s prozorima OS-a i izvornim aplikacijama.
Primarna svrha Robota je podrška ugradnji projekta automatiziranih testova selena Java platforma