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
The 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 naฤi ฤete u mapi JDK. Kopirajte src.zip i extracisto u nekoj drugoj mapi ili direktoriju (recimo D: ili E:)
Korak 2) Extracmapa src i idite do (putanja do mape src)/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 poput 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




