Robottiluokka
Robot luokka seleeniä käytetään mahdollistamaan automaattinen testaus ja toteutuksia Java. Se tuottaa syöttötapahtumia natiivijärjestelmissä testausautomaatiota, itsestään ajettavia demoja ja muita sovelluksia varten, joissa käyttäjät tarvitsevat hiiren ja näppäimistön hallintaa. Robottiluokka on helppo toteuttaa ja se voidaan helposti integroida automatisoituun kehykseen.
Miksi robotti luokka?
Robottiluokkaa käytetään Seleniumissa, koska tietyissä Selenium-automaatiotesteissä käyttäjät tarvitsevat näppäimistön tai hiiren hallintaa, jotta he voivat olla vuorovaikutuksessa käyttöjärjestelmän ikkunoiden kanssa, kuten ladata ponnahdusikkunoita, tulostaa ponnahdusikkunoita jne. Webdriver ei pysty käsittelemään näitä ponnahdusikkunoita / sovelluksia, joten Java-versiossa 1.3 otettiin käyttöön robotti, joka pystyy käsittelemään käyttöjärjestelmän ponnahdusikkunoita / sovelluksia.
Tässä opetusohjelmassa opit,
- Robottiluokan edut
- Robottiluokan dokumentaatio
- Robot-luokan sisäisten menetelmien ja käytön ymmärtäminen
- Kuinka suorittaa robottiluokan koodi testNG: n avulla
- Robottiluokan haitat
Robottiluokan edut
- Robottiluokka voi simuloida näppäimistöä ja hiirtapahtumaa
- Robottiluokka voi auttaa lataamaan / lataamaan tiedostoja, kun käytetään seleeni-web-ohjainta
- Robottiluokka voidaan helposti integroida nykyiseen automatisointikehykseen (avainsana, dataohjattu tai hybridi)
Mikä on robottiluokan dokumentaatio?
Robot luokka Documentation seleeniä auttaa käyttäjiä ymmärtämään perusmääritelmän, syntaksia ja kaikki menetelmät ja toiminnot saatavilla robotti luokan Javan AWT paketti. Käyttäjät voivat tarkastella dokumentaatiota Oraclen virallisella verkkosivustolla. Käyttäjät voivat myös luoda paikallisen koneen dokumentaation itse.
Luo paikallisen koneen dokumentaatio seuraavasti:
Vaihe 1) Löydät src.zip-tiedoston JDK-kansiosta. Kopioi src.zip ja pura sama johonkin muuhun kansioon tai hakemistoon (sano D: tai E:)
Vaihe 2) Pura src-kansio ja siirry kohtaan (polku src-kansioon asti) / src / java / awt
Vaihe 3) Kopioi awt-kansion nykyinen sijainti ja avaa komentokehote.
Vaihe 4) Vaihda cmd: ssä nykyinen hakemistosijaintisi awt-kansioon ja kirjoita 'javadoc * .java' alla olevan kuvan mukaisesti
Odota hetki, kunnes järjestelmä käsittelee, kun olet valmis, näet muutamia HTML-tiedostoja awt-kansiossa.
Vaihe 5) Avaa index.html
Vaihe 6) Tässä on kattava awt-paketin dokumentaatio, napsauta vasemmasta navigointipalkista Robot-hyperlinkkiä (katso 1 merkitty alla olevaan kuvaan).
Täältä näet myös kaikki robottiluokan menetelmät ja käyttöliittymät (katso yllä olevassa kuvassa merkitty 2).
Robot-luokan sisäisten menetelmien ja käytön ymmärtäminen
Robottiluokan menetelmiä voidaan käyttää vuorovaikutuksessa näppäimistö / hiiri -tapahtumien kanssa samalla, kun tehdään selaimen automaatiota. Vaihtoehtoisesti voidaan käyttää AutoITia, mutta sen haittana on, että se luo suoritettavan tiedoston (exe), joka toimii vain Windowsissa, joten se ei ole hyvä vaihtoehto käyttää.
Joitakin yleisesti käytettyjä robotti-luokan menetelmiä web-automaation aikana:
- keyPress (): Esimerkki: robot.keyPress (KeyEvent.VK_DOWN): Tämä menetelmä paina näppäimistön alanuolinäppäintä
- mousePress (): Esimerkki : robot.mousePress (InputEvent.BUTTON3_DOWN_MASK): Tämä menetelmä painaa hiiren kakkospainiketta.
- mouseMove (): Esimerkki : robot.mouseMove (point.getX (), point.getY ()): Tämä siirtää hiiren osoittimen määritettyihin X- ja Y-koordinaatteihin.
- keyRelease (): Esimerkki: robot.keyRelease (KeyEvent.VK_DOWN): Tämä menetelmä vapautetaan näppäimistön alanuolinäppäimellä
- mouseRelease (): Esimerkki: robot.mouseRelease (InputEvent.BUTTON3_DOWN_MASK): Tämä menetelmä vapauttaa hiiren oikean napsautuksen
Esimerkkikoodi yleisten käyttötapausten automatisoimiseksi robottiluokan avulla
- Otetaan esimerkki verkkosivustosta http://spreadsheetpage.com/index.php/file/C35/P10/, jossa napsautettuasi verkkoelementtiä ( .//a[@href= sisältää ( text (),' vuotta- calendar.xls '] ) näyttöön tulee käyttöjärjestelmän latausikkuna.
- Tämän käsittelemiseksi käytämme Robot-luokkaa (luomalla koodiin Robot-luokan esiintymä, sano Robot robot = new Robot () ). Robottiluokka meidät läsnä JDK: n AWT-paketissa.
- Käytetyn näppäimistön nuolinäppäimen painaminen ( robot.keyPress (KeyEvent.VK_DOWN))
- Paina näppäimistön TAB-näppäintä (käytämme robot.keyPress (KeyEvent.VK_TAB))
- Paina Enter-näppäintä ( robot.keyPress (KeyEvent.VK_ENTER)).
Tässä on esimerkkikoodi
tuo java.awt.AWTException;tuo java.awt.Robot;tuo java.awt.event.KeyEvent;tuo org.openqa.selenium.By;tuo org.openqa.selenium.WebDriver;tuo org.openqa.selenium.firefox.FirefoxDriver;luokka Harjoitus1 {public static void main (String [] args) heittää AWTException, InterruptedException {WebDriver-ohjain = uusi FirefoxDriver ();driver.get ("http://spreadsheetpage.com/index.php/file/C35/P10/"); // näyte-URLdriver.findElement (By.xpath (".// a [@ href = sisältää (teksti (), 'vuosikalenteri.xls')]")). napsauta ();Robotti robotti = uusi robotti (); // Robottiluokka heittää AWT-poikkeuksenThread.sleep (2000); // Thread.sleep heittää InterruptedExceptionrobot.keyPress (KeyEvent.VK_DOWN); // navigoi painamalla näppäimistön nuolinäppäintä alas ja valitse Tallenna-valintanappiThread.sleep (2000); // sleep -ohjelmaa on käytetty vain kunkin tapahtuman esittelemiseen erikseenrobot.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);// paina näppäimistön Enter-näppäintä suorittaaksesi valitun toiminnon}}
Tarkista tämä video nähdäksesi sen toiminnassa
Kuinka suorittaa Robot-luokan koodi TestNG: n avulla
Koska tiedät nyt robottiluokan perusmenetelmät, ymmärretään siis muutama monimutkaisempi menetelmä -
Oletetaan, että et halua käyttää napsautusmenetelmää napsauttamalla verkkoelementtiä.
Tällöin voit käyttää Robot-luokan mouseMove-menetelmää.
Vaihe 1) mouseMove-menetelmä käyttää x- ja y-koordinaatteja parametreina, kuten robot.mouseMove (630, 420), jossa 630 osoittaa x-akselia ja 420 osoittaa y-akselia. Joten tämä menetelmä siirtää hiiren osoittimen nykyisestä sijainnista mainittuun x- ja y-leikkauspisteeseen.
Vaihe 2) Seuraavaksi meidän on painettava hiiren painiketta. Voimme käyttää menetelmää mousePress kuten robot.mousePress (InputEvent.BUTTON1_DOWN_MASK) .
Vaihe 3) Painamisen jälkeen hiiri on vapautettava. Voimme käyttää robot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK ) hiiren vasemman napsautuksen vapauttamiseksi.
Suorituskoodi testNG: n avulla:
Koodin suorittaminen Testng-ohjelmalla edellyttää testNG: n tai TestNG-purkitiedoston viitatun kirjaston riippuvuutta.
TestNG-riippuvuus:
org.testng testng 6.1.1
Kun olet lisännyt maven-riippuvuuden tai purkitiedoston. Sinun on tuotava testNG: n Test-merkintä. Kun kaikki on valmis, napsauta hiiren kakkospainikkeella ohjelmakoodia ja napsauta Suorita kuten sitten TestNG
… Ja huomaat, että koodi aloittaa suorituksen testNG-sovellusliittymän avulla.Tässä on koodi
tuo java.awt.AWTException;tuo java.awt.Robot;tuo java.awt.event.InputEvent;tuo java.awt.event.KeyEvent;tuo org.openqa.selenium.WebDriver;tuo org.openqa.selenium.firefox.FirefoxDriver;tuo org.testng.annotations.Test;julkinen luokka Excersise1 {@Testatajulkinen staattinen tyhjä toteutus () heittää InterruptedException, AWTException {WebDriver-ohjain = uusi FirefoxDriver ();ohjain.hallinta (). ikkuna (). maksimoi ();driver.get ("http://spreadsheetpage.com/index.php/file/C35/P10/"); // näyte-URLRobotti robotti = uusi robotti ();robot.mouseMove (630, 420); // siirrä hiiren osoitin tiettyyn sijaintiinrobotti viivästys (1500); // viive on saada koodi odottamaan mainittuja millisekunteja ennen seuraavan vaiheen suorittamistarobot.mousePress (InputEvent.BUTTON1_DOWN_MASK); // paina vasenta napsautustarobot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK); // vapauta vasen napsautusrobotti.viive (1500);robot.keyPress (KeyEvent.VK_DOWN); // valitse Tallenna-valintanappi painamalla näppäimistön nuolinäppäintäThread.sleep (2000);robot.keyPress (KeyEvent.VK_ENTER);// paina näppäimistön Enter-näppäintä suorittaaksesi valitun toiminnon}}
Tarkista tämä video nähdäksesi sen toiminnassa
Robottiluokan haitat
Robottirakenteilla on muutamia alla mainittuja haittoja:
- Avainsana / hiiri -tapahtuma toimii vain Windowsin nykyisessä esiintymässä. Oletetaan esimerkiksi, että koodi suorittaa minkä tahansa robottiluokan tapahtuman, ja koodin suorittamisen aikana käyttäjä on siirtynyt jollekin muulle näytölle, silloin avainsana / hiiri -tapahtuma esiintyy kyseisellä näytöllä.
- Suurin osa menetelmistä, kuten mouseMove, riippuu näytön tarkkuudesta, joten saattaa olla mahdollista, että yhdessä koneessa toimiva koodi ei välttämättä toimi toisessa.
Yhteenveto
AWT-paketin robottiluokkaa käytetään luomaan näppäimistö / hiiri tapahtumia vuorovaikutuksessa käyttöjärjestelmän ikkunoiden ja natiivisovellusten kanssa.
Robotin ensisijainen tarkoitus on tukea seleenin automatisoituja testiprojektien rakentamista Java-alustalle
Tämän artikkelin on kirjoittanut Ramandeep Singh, joka on testausautomaatioinsinööri johtavassa MNC: ssä.