Roboti klass sisse Selenium Veebidraiver

Mis on robotiklass Selenium?

Roboti klass in Selenium kasutatakse rakenduste automaatse testimise vรตimaldamiseks Java platvorm. See genereerib sisendsรผndmusi algsรผsteemides testimise automatiseerimiseks, isekรคitavate demode ja muude rakenduste jaoks, kus kasutajad vajavad kontrolli hiire ja klaviatuuri รผle. Robotiklassi on lihtne rakendada ja seda saab hรตlpsasti integreerida automatiseeritud raamistikuga.

Miks robotiklass?

Roboti klass kasutatakse Selenium sest teatud Selenium automatiseerimistestide puhul vajavad kasutajad kontrolli klaviatuuri vรตi hiire รผle, et suhelda OS-i akendega, nagu allalaadimise hรผpikaknad, printimise hรผpikaknad jne, ja omarakendustega, nagu mรคrkmik, kalkulaator jne. Selenium Veebidraiver ei saa neid hรผpikaknaid/rakendusi kรคsitleda, seega sisse Java versioon 1.3, vรตeti kasutusele robotiklass, mis suudab hallata OS-i hรผpikaknaid/rakendusi.

Robotiklassi dokumentatsioon

. Robotiklassi dokumentatsioon in Selenium aitab kasutajatel mรตista kรตigi robotiklassis saadaolevate meetodite ja funktsioonide pรตhimรครคratlust, sรผntaksit ja kasutamist Java AWT pakett. Kasutajad saavad dokumentatsiooni vaadata saidil Ametlik Oracle veebisait. Kasutajad saavad ka ise luua dokumentatsiooni oma kohalikus masinas.

Dokumentatsiooni loomiseks kohalikus masinas jรคrgige alltoodud samme -

Step 1) Src.zip faili leiad JDK kaustast. Kopeeri src.zip ja seejรคreltracsama mรตnes teises kaustas vรตi kataloogis (nรคiteks D: vรตi E:)

Robotiklassi dokumentatsioon

Step 2) Extract src kaust ja navigeeri (tee kuni src kaustani)/src/java/awt

Step 3) Kopeerige awt kausta praegune asukoht ja avage kรคsuviip.

Step 4) Muutke cmd-s oma praegune kataloogi asukoht kaustaks awt ja tippige "javadoc *.java", nagu allpool nรคidatud

Robotiklassi dokumentatsioon

Oodake veidi, kuni sรผsteem tรถรถtleb, kui see on lรตpetatud, nรคete kaustas awt vรคhe HTML-faile.

Step 5) Avage index.html

Robotiklassi dokumentatsioon

Step 6) Siin on awt paketi tรคielik dokumentatsioon. Klรตpsake vasakpoolsel navigeerimisribal hรผperlingil "Robot" (vt alloleval pildil mรคrgitud 1).

Robotiklassi dokumentatsioon

Siin nรคete ka kรตiki robotklassi meetodeid ja liideseid (vt รผlaloleval pildil mรคrgitud 2).

Robotiklassi meetodid Selenium ja kasutamine

Robotklassi meetodeid saab kasutada klaviatuuri/hiire sรผndmustega suhtlemiseks brauseri automatiseerimise ajal. Alternatiivina AutoIT saab kasutada, kuid selle puuduseks on see, et see genereerib kรคivitatava faili (exe), mis tรถรถtab ainult Windowsis, seega pole see hea valik.

Mรตned levinud ja populaarsed robotklassi meetodid veebiautomaatika ajal:

1. meetod: klahvivajutus ():

robot.keyPress(KeyEvent.VK_DOWN): see meetod klaviatuuri alla-nooleklahviga

2. meetod: hiirepress():

robot.mousePress(InputEvent.BUTTON3_DOWN_MASK): see meetod vajutab hiire paremklรตpsu.

3. meetod: mouseMove():

robot.mouseMove(point.getX(), point.getY()): see viib hiirekursori mรครคratud X- ja Y-koordinaatidele.

4. meetod: keyRelease():

robot.keyRelease(KeyEvent.VK_DOWN): see meetod klaviatuuri allanooleklahviga

5. meetod: mouseRelease():

robot.mouseRelease(InputEvent.BUTTON3_DOWN_MASK): see meetod vabastab teie hiire paremklรตpsu

Nรคidiskood tavaliste kasutusjuhtude automatiseerimiseks robotklassi abil

  • Vรตtame nรคiteks veebisaidi http://spreadsheetpage.com/index.php/file/C35/P10/, kus pรคrast veebielemendil klรตpsamist (.//a[@href=contains(text(),'yearly-calendar.xls']) ilmub OS-i allalaadimise hรผpikaken.
  • Selle haldamiseks kasutame robotiklassi (luues teie koodis robotiklassi eksemplari, รถelge Robot robot = uus robot()) . Robotklass meid esindab JDK AWT paketis.
Klaviatuuri klahv Meetod
Allanooleklahvi vajutamiseks me kasutame (robot.keyPress(KeyEvent.VK_DOWN))
TAB-klahvi vajutamiseks me kasutame (robot.keyPress(KeyEvent.VK_TAB))
Enter klahvi vajutamiseks me kasutame (robot.keyPress(KeyEvent.VK_ENTER))

Robotiklassi nรคide 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	
     }	 
 }

Vaadake seda videot, et nรคha seda tegevuses

Kuidas kรคivitada robotklassi koodi kasutades TestNG

Kuna olete nรผรผd robotklassi pรตhimeetoditest teadlik, siis mรตistame mรตnda keerukamat meetodit -

Oletame, et te ei soovi kasutada kliki meetod veebielemendil klรตpsamiseks.

Sellistel juhtudel saate kasutada robotklassi meetodit mouseMove.

Step 1) MouseMove meetod vรตtab parameetritena x ja y koordinaadid robot.mouseMove(630, 420) kus 630 tรคhistab x-telge ja 420 tรคhistab y-telge. Seega liigutab see meetod hiirekursori praegusest asukohast mainitud x ja y ristumispunkti.

Step 2) Jรคrgmisena peame vajutama hiire nuppu. Me saame meetodit kasutada hiirVajuta nagu robot.mousePress(InputEvent.BUTTON1_DOWN_MASK) .

Step 3) Pรคrast vajutamist tuleb hiir vabastada. Saame kasutada robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK), et vabastada hiire vasak klรตps.

Koodi kรคivitamine testNG abil:

Koodi kรคivitamine kasutades Testng nรตuab testNG-i vรตi viidatud teegi suurt sรตltuvust TestNG jar fail.

TestNG meeletu sรตltuvus:

<dependency>	
  <groupId>org.testng</groupId>
  <artifactId>testng</artifactId>	
  <version>6.1.1</version>	
</dependency>

Pรคrast maveni sรตltuvuse vรตi jar-faili lisamist. Peate importima testNG testmรคrkuse. Kui kรตik on tehtud, paremklรตpsake programmi koodil ja klรตpsake nuppu Kรคivita, seejรคrel klรตpsake nuppu TestNGโ€ฆ ja leiate, et kood alustab tรคitmist testNG API abil.

Siin on kood

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	
    }	
}	

Vaadake seda videot, et nรคha seda tegevuses

Robotiklassi eelised

  1. Robotiklass suudab simuleerida klaviatuuri ja hiire sรผndmust
  2. Robotiklass aitab seleeni veebidraiveri kasutamisel faile รผles laadida/alla laadida
  3. Robotklassi saab hรตlpsasti integreerida praeguse automatiseerimisraamistikuga (mรคrksรตna, andmepรตhine vรตi hรผbriid)

Robotklassi miinused

Robotraamil on mรตned allpool nimetatud puudused:

  1. Mรคrksรตna/hiire sรผndmus tรถรถtab ainult praegusel akna eksemplaril. Nรคiteks oletame, et kood sooritab mis tahes robotiklassi sรผndmust ja koodi tรคitmise ajal on kasutaja liikunud mรตnele teisele ekraanile, siis toimub sellel ekraanil mรคrksรตna/hiire sรผndmus.
  2. Enamik meetodeid, nagu mouseMove, sรตltub ekraani eraldusvรตimest, nii et vรตib tekkida vรตimalus, et รผhes masinas tรถรถtav kood ei pruugi teises masinas tรถรถtada.

kokkuvรตte

AWT-paketi robotiklassi kasutatakse klaviatuuri/hiire sรผndmuste genereerimiseks, et suhelda OS-i akende ja omarakendustega.

Roboti peamine eesmรคrk on toetada seleeni automatiseeritud testide projekti sisseehitamist Java inimesele

Vรตta see postitus kokku jรคrgmiselt: