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:)

Dokumentacija o klasi robota

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

Dokumentacija o klasi robota

Priฤekajte neko vrijeme da sustav obradi, nakon dovrลกetka vidjet ฤ‡ete nekoliko HTML datoteka u mapi awt.

Korak 5) Otvorite index.html

Dokumentacija o klasi robota

Korak 6) Ovdje imate potpunu dokumentaciju paketa awt, na lijevoj navigacijskoj traci kliknite hipervezu 'Robot' (pogledajte 1 oznaฤenu na slici ispod).

Dokumentacija o klasi robota

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

  1. Robot Class moลพe simulirati dogaฤ‘aj tipkovnice i miลกa
  2. Robot Class moลพe pomoฤ‡i u uฤitavanju/preuzimanju datoteka kada se koristi selenium web upravljaฤki program
  3. 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:

  1. 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.
  2. 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

Saลพmite ovu objavu uz: