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) Faili src.zip leiate JDK kaustast. Kopeerige fail src.zip ja ekstraheerige see mõnest teisest kaustast või kataloogist (näiteks D: või E: )
Step 2) Ekstraktige src kaust ja liikuge (tee 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