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:)
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
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
Step 6) Siin on awt paketi tรคielik dokumentatsioon. Klรตpsake vasakpoolsel navigeerimisribal hรผperlingil "Robot" (vt alloleval pildil mรคrgitud 1).
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
- Robotiklass suudab simuleerida klaviatuuri ja hiire sรผndmust
- Robotiklass aitab seleeni veebidraiveri kasutamisel faile รผles laadida/alla laadida
- 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:
- 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.
- 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




