Robotiklass
Robotiklassi seleenis kasutatakse Java-platvormi juurutuste automatiseeritud testimise võimaldamiseks. See genereerib sisesündmusi natiivsüsteemides testimisautomaatika, isejuhtivate demode ja muude rakenduste jaoks, kus kasutajad vajavad hiire ja klaviatuuri kontrolli. Robotiklass on hõlpsasti rakendatav ja seda saab hõlpsasti integreerida automatiseeritud raamistikuga.
Miks just robotiklass?
Robotiklassi kasutatakse seleenis, kuna teatud seleeni automatiseerimistestide puhul vajavad kasutajad klaviatuuri või hiire kontrolli, et suhelda operatsioonisüsteemi akendega, näiteks hüpikakende allalaadimise, hüpikakende printimise jms ja kohalike rakendustega, nagu märkmik, kalkulaator jne. Veebidraiver ei saa nende hüpikakende / rakendustega hakkama, nii et Java versioonis 1.3 võeti kasutusele robotiklass, mis suudab hallata OS-i hüpikaknaid / rakendusi.
Selles õpetuses saate teada,
- Robotiklassi eelised
- Robotiklassi dokumentatsioon
- Robotiklassi sisemiste meetodite ja kasutamise mõistmine
- Kuidas käivitada robot-klassi kood testNG abil
- Robotiklassi ebasoodsad küljed
Robotiklassi eelised
- Robotiklass suudab simuleerida klaviatuuri ja hiire sündmust
- Seleeni veebidraiveri kasutamisel võib robotiklass aidata failide üleslaadimisel / allalaadimisel
- Robotiklassi saab hõlpsasti integreerida praeguse automatiseerimisraamistikuga (märksõna, andmetega või hübriid)
Mis on robotiklassi dokumentatsioon?
Robot klassi dokumentatsioon seleeni aitab kasutajatel mõista põhimääratluse, süntaksit ja kasutamist kõik meetodid ja funktsioonid saadaval robot klassi Java AWT pakendis. Kasutajad saavad dokumentatsiooni vaadata Oracle'i ametlikul veebisaidil. Samuti saavad kasutajad ise oma kohaliku masina dokumentatsiooni luua.
Kohaliku masina dokumentatsiooni loomiseks toimige järgmiselt.
Samm 1) Leiate src.zip-faili JDK kaustast. Kopeerige src.zip ja eraldage see mõnes muus kaustas või kataloogis (öelge D: või E:)
Samm 2) Eemaldage src kaust ja liikuge (tee kuni src kausta) / src / java / awt
Samm 3) Kopeerige kausta awt praegune asukoht ja avage käsuviip.
Samm 4) Muutke cmd-s oma praegune kataloogi asukoht kaustaks awt ja tippige "javadoc * .java", nagu allpool näidatud
Oodake mõnda aega, kuni süsteem töötleb. Kui olete valmis, näete awt-kaustas vähe HTML-faile.
5. samm. Avage index.html
Samm 6) Siin on täielik paketi awt dokumentatsioon, klõpsake vasakul navigeerimisribal hüperlingil Robot (vt 1, mis on märgitud pildi all).
Siin näete ka kõiki robotiklassi meetodeid ja liideseid (vt ülaloleval pildil märgitud 2).
Robotiklassi sisemiste meetodite ja kasutamise mõistmine
Robotiklassi meetodeid saab kasutada brauseri automatiseerimise ajal klaviatuuri / hiire sündmustega suhtlemiseks. Alternatiivina saab kasutada AutoIT-i, kuid selle puuduseks on see, et see genereerib käivitatava faili (exe), mis töötab ainult akendel, nii et see pole hea võimalus kasutada.
Mõned veebiautomaatika käigus levinud ja populaarseimad robotiklassi meetodid:
- keyPress (): Näide: robot.keyPress (KeyEvent.VK_DOWN): see meetod vajutage klaviatuuri allanooleklahvi
- mousePress (): Näide : robot.mousePress (InputEvent.BUTTON3_DOWN_MASK): see meetod vajutab hiire paremat nuppu.
- mouseMove (): Näide : robot.mouseMove (point.getX (), point.getY ()): see viib hiirekursori määratud X- ja Y-koordinaatidele.
- keyRelease (): Näide: robot.keyRelease (KeyEvent.VK_DOWN): see meetod vabastatakse klaviatuuri alla nooleklahv
- mouseRelease (): Näide: robot.mouseRelease (InputEvent.BUTTON3_DOWN_MASK): see meetod vabastab hiire parema hiireklõpsu
Näidiskood üldkasutatavate juhtumite automatiseerimiseks, kasutades robotiklassi
- Võtame näite veebisaidilt http://spreadsheetpage.com/index.php/file/C35/P10/, kus pärast klõpsamist veebielemendil ( .//a[@href=contains(text(),'ylyly- calendar.xls '] ) kuvatakse operatsioonisüsteemi allalaadimise hüpikaken.
- Selle lahendamiseks kasutame robotiklassi (luues oma koodis robotiklassi eksemplari, öelge Robot robot = new Robot () ). Robotiklassid oleme kohal JDK AWT paketis.
- Kasutatava klaviatuuri allanooleklahvi vajutamiseks ( robot.keyPress (KeyEvent.VK_DOWN))
- Klaviatuuri TAB-klahvi vajutamiseks (kasutame robot.keyPress (KeyEvent.VK_TAB))
- Sisestamisklahvi vajutamiseks kasutame ( robot.keyPress (KeyEvent.VK_ENTER)).
Siin on näidiskood
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;klass Harjutus1 {public staatiline void main (String [] args) viskab AWTException, InterruptedException {WebDriveri draiver = uus FirefoxDriver ();draiver.get ("http://spreadsheetpage.com/index.php/file/C35/P10/"); // proovi URLdraiver.findElement (By.xpath (".// a [@ href = sisaldab (text (), 'aastane-kalendri.xls')]" ")). klõpsake ();Robotrobot = uus robot (); // Robotiklass viskab AWT erandiThread.sleep (2000); // Thread.sleep viskab InterruptedExceptionrobot.keyPress (KeyEvent.VK_DOWN); // navigeerimiseks vajutage klaviatuuri nooleklahvi alla ja valige raadionupp SalvestaThread.sleep (2000); // sleepi on kasutatud ainult iga sündmuse eraldi esitlemiseksrobot.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);// valitud toimingu kohal toimimiseks vajutage klaviatuuri sisestusklahvi}}
Vaadake seda videot, et näha seda toimimas
Kuidas käivitada robotiklassi kood TestNG abil
Kuna nüüd olete robotiklassi põhimeetoditest teadlik, mõistkem mõnda keerukamat meetodit -
Oletame, et te ei soovi kasutada kliki meetod eest klõpsates web element.
Sellistel juhtudel võite kasutada klassi Robot mouseMove meetodit.
Samm 1) mouseMove meetod võtab parameetritena x ja y koordinaadid nagu robot.mouseMove (630, 420), kus 630 tähistab x-telge ja 420 tähistab y-telge. Niisiis, see meetod viib teie hiirekursori praegusest asukohast mainitud x ja y lõikepunkti.
Samm 2) Järgmisena peame vajutama hiire nuppu. Saame kasutada meetodit mousePress nagu robot.mousePress (InputEvent.BUTTON1_DOWN_MASK) .
Samm 3) Pärast vajutamist tuleb hiir vabastada. Hiire vasaku klõpsu vabastamiseks saame kasutada robot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK ).
Koodi käivitamine testNG abil:
Koodi käivitamine Testng abil nõuab testNG või TestNG jar-faili viidatud teegi sõltuvust vormist.
TestNG sõltuvus:
org.testng testng artifactId> 6.1.1
Pärast maven sõltuvuse või purkfaili lisamist. Peate importima testNG testi märkuse. Kui see kõik on tehtud, klõpsake lihtsalt hiire parema nupuga programmi koodil ja klõpsake käsku Käivita nagu siis klõpsake nuppu TestNG
... ja leiate, et see kood käivitatakse 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;avalik klass Excersise1 {@Testavalik staatiline tühimiku täitmine () viskab InterruptedException, AWTException {WebDriveri draiver = uus FirefoxDriver ();draiver.halda (). aken (). maksimeeri ();draiver.get ("http://spreadsheetpage.com/index.php/file/C35/P10/"); // proovi URLRobotrobot = uus robot ();robot.mouseMove (630, 420); // liiguta hiirekursor kindlasse kohtarobot.viivitus (1500); // viivitus on panna kood ootama mainitud millisekundeid enne järgmise sammu käivitamistrobot.mousePress (InputEvent.BUTTON1_DOWN_MASK); // vajutage vasakklõpsrobot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK); // vabastage vasakklõpsrobot.viivitus (1500);robot.keyPress (KeyEvent.VK_DOWN); // vajutage klaviatuuri nooleklahvi, et valida raadionupp SalvestaThread.sleep (2000);robot.keyPress (KeyEvent.VK_ENTER);// valitud toimingu kohal toimimiseks vajutage klaviatuuri sisestusklahvi}}
Vaadake seda videot, et näha seda toimimas
Robotiklassi puudused
Robotraamil on vähe allpool nimetatud puudusi:
- Märksõna / hiire sündmus töötab ainult Windowsi praegusel 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 ilmub sellel ekraanil märksõna / hiire sündmus.
- Enamik meetodeid, näiteks mouseMove, sõltuvad ekraani eraldusvõimest, seega võib olla tõenäosus, et ühes masinas töötav kood ei pruugi teistes töötada.
Kokkuvõte
Robotiklassi AWT paketis kasutatakse klaviatuuri / hiire sündmuste loomiseks operatsioonisüsteemi akende ja kohalike rakendustega suhtlemiseks.
Roboti esmane eesmärk on toetada seleeni automatiseeritud testimisprojekte Java-platvormil
Selle artikli kirjutas Ramandeep Singh, kes on juhtiva MNC testautomaatik.