Robotų klasė
„Selenium“ robotų klasė naudojama automatiniam „Java“ platformos diegimo testavimui įgalinti. Jis generuoja įvesties įvykius savosiose sistemose, kad būtų galima atlikti automatizuotą bandymą, savarankiškai veikiančias demonstracines versijas ir kitas programas, kuriose vartotojams reikia pelės ir klaviatūros valdymo. Robotų klasę lengva įgyvendinti ir ją galima lengvai integruoti į automatizuotą sistemą.
Kodėl robotų klasė?
Robotų klasė naudojama „Selenium“, nes atliekant tam tikrus „Selenium“ automatikos testus, vartotojams reikalinga klaviatūros ar pelės kontrolė, kad jie galėtų sąveikauti su OS langais, pvz., Atsisiųsti iššokančiuosius langus, spausdinti iššokančiuosius langus ir pan., Ir vietinėmis programomis, tokiomis kaip bloknotas, skaičiuoklė ir kt. „Webdriver“ negali valdyti šių iššokančiųjų langų / programų, todėl „Java“ versijoje 1.3 buvo įdiegta robotų klasė, galinti tvarkyti OS iššokančiuosius langus / programas.
Šioje pamokoje sužinosite,
- Robotų klasės privalumai
- Robotų klasės dokumentacija
- Suprasti robotų klasės vidinius metodus ir naudojimą
- Kaip vykdyti roboto klasės kodą naudojant testNG
- Robotų klasės trūkumai
Robotų klasės privalumai
- Robotų klasė gali imituoti klaviatūros ir pelės įvykį
- Robotų klasė gali padėti įkelti / atsisiųsti failus naudojant seleno žiniatinklio tvarkyklę
- Robotų klasę galima lengvai integruoti į dabartinę automatikos sistemą (raktinį žodį, duomenų valdymą ar hibridą)
Kas yra robotų klasės dokumentacija?
„ Selenium “ robotų klasės dokumentacija padeda vartotojams suprasti visų robotų klasėje esančių metodų ir funkcijų „Java AWT“ pakete pagrindinę apibrėžtį, sintaksę ir naudojimą. Vartotojai gali peržiūrėti dokumentus oficialioje „Oracle“ svetainėje. Vartotojai taip pat gali patys susikurti dokumentaciją savo vietinėje mašinoje.
Norėdami sukurti dokumentaciją vietinėje mašinoje, atlikite šiuos veiksmus:
1 veiksmas) src.zip failą rasite JDK aplanke. Nukopijuokite src.zip ir ištraukite tą patį į kitą aplanką ar katalogą (tarkim, D: arba E:)
2 žingsnis) Ištraukite src aplanką ir eikite į (kelias iki src aplanko) / src / java / awt
3 žingsnis. Nukopijuokite dabartinę awt aplanko vietą ir atidarykite komandų eilutę.
4 žingsnis) cmd pakeiskite dabartinę katalogo vietą į awt aplanką ir įveskite „javadoc * .java“, kaip parodyta žemiau
Palaukite, kol sistema apdoros. Baigę pamatysite keletą HTML failų awt aplanke.
5 žingsnis. Atidarykite index.html
6 žingsnis) Čia yra visa „awt“ paketo dokumentacija, kairėje naršymo juostoje spustelėkite „Roboto“ hipersaitą (žr. 1 pažymėtą žemiau esančiame paveikslėlyje).
Čia taip pat galite pamatyti visus robotų klasės metodus ir sąsajas (žr. 2, pažymėtą aukščiau esančiame paveikslėlyje).
Suprasti robotų klasės vidinius metodus ir naudojimą
Roboto klasės metodai gali būti naudojami sąveikai su klaviatūros / pelės įvykiais atliekant naršyklės automatizavimą. Arba galima naudoti „AutoIT“, tačiau jo trūkumas yra tas, kad jis sukuria vykdomąjį failą (exe), kuris veiks tik „Windows“, todėl tai nėra gera galimybė naudoti.
Kai kurie dažniausiai ir populiariai naudojami robotų klasės metodai atliekant interneto automatizavimą:
- keyPress (): Pavyzdys: robot.keyPress (KeyEvent.VK_DOWN): Šis metodas paspaudus klaviatūros rodyklės žemyn klavišą
- mousePress (): Pavyzdys : robot.mousePress (InputEvent.BUTTON3_DOWN_MASK): Šis metodas paspaus dešinį pelės klavišą.
- mouseMove (): Pavyzdys : robot.mouseMove (point.getX (), point.getY ()): Taip pelės žymeklis bus perkeltas į nurodytas X ir Y koordinates.
- keyRelease (): Pavyzdys: robot.keyRelease (KeyEvent.VK_DOWN): Šis metodas paleidus klaviatūros rodyklės žemyn klavišą
- mouseRelease (): Pavyzdys: robot.mouseRelease (InputEvent.BUTTON3_DOWN_MASK): Šis metodas atleis dešinį pelės paspaudimą
Kodo pavyzdys, skirtas automatizuoti įprasto naudojimo atvejus naudojant „Robot Class“
- Paimkime pavyzdį svetainės http://spreadsheetpage.com/index.php/file/C35/P10/ kurioje spustelėjus žiniatinklio elementą ( .//a[@href=contains(text(),'yearly- calendar.xls '] ) pasirodys OS atsisiuntimo iššokantis langas.
- Norėdami tai išspręsti, mes naudojame „Robot class“ (sukurdami savo kode „Robot Class“ egzempliorių, pasakykite Robot robot = new Robot () ). Robotų klasė, esanti JDK AWT pakete.
- Norėdami paspausti klaviatūros rodyklės klavišą žemyn, kurį naudojame ( robot.keyPress (KeyEvent.VK_DOWN))
- Norėdami paspausti klaviatūros klavišą TAB (mes naudojame robot.keyPress (KeyEvent.VK_TAB))
- Norėdami paspausti Enter klavišą, mes naudojame ( robot.keyPress (KeyEvent.VK_ENTER)).
Čia yra pavyzdinis kodas
importuoti java.awt.AWTException;importuoti java.awt.Robot;importuoti java.awt.event.KeyEvent;importuoti org.openqa.selenium.By;importuoti org.openqa.selenium.WebDriver;importuoti org.openqa.selenium.firefox.FirefoxDriver;klasės pratimas1 {public static void main (String [] args) meta AWTException, InterruptedException {„WebDriver“ tvarkyklė = nauja „FirefoxDriver“ ();tvarkyklė.get ("http://spreadsheetpage.com/index.php/file/C35/P10/"); // pavyzdinis URLtvarkyklė.findElement (By.xpath (".// a [@ href = yra (tekstas (), 'metiniai kalendoriaus.xls']]]")). spustelėkite ();Robotas robotas = naujas robotas (); // Robotų klasė meta AWT išimtįSiūlai.miega (2000); // Thread.sleep meta InterruptedExceptionrobot.keyPress (KeyEvent.VK_DOWN); // paspauskite rodyklę žemyn klaviatūros klavišu, kad galėtumėte naršyti ir pasirinkti Išsaugoti radijo mygtukąSiūlai.miega (2000); // miegas buvo naudojamas tik norint pristatyti kiekvieną įvykį atskirairobot.keyPress (KeyEvent.VK_TAB);Siūlai.miega (2000);robot.keyPress (KeyEvent.VK_TAB);Siūlai.miega (2000);robot.keyPress (KeyEvent.VK_TAB);Siūlai.miega (2000);robot.keyPress (KeyEvent.VK_ENTER);// paspauskite klaviatūros klavišą Enter, kad atliktumėte aukščiau pasirinktą veiksmą}}
Patikrinkite šį vaizdo įrašą, kad pamatytumėte, kaip jis veikia
Kaip vykdyti robotų klasės kodą naudojant TestNG
Kadangi dabar jūs žinote pagrindinius robotų klasės metodus, supraskime keletą sudėtingesnių metodų -
Tarkime, kad nenorite naudoti paspaudimo metodo spustelėdami žiniatinklio elementą.
Tokiais atvejais galite naudoti „robot“ klasės „mouseMove“ metodą.
1 žingsnis. „ MouseMove“ metodas nurodo x ir y koordinates kaip parametrus, pvz., „ Robot.mouseMove“ (630, 420), kur 630 nurodo x ašį, o 420 - y ašį. Taigi, taikant šį metodą, pelės žymeklis bus perkeltas iš dabartinės vietos į paminėtą x ir y sankirtos tašką.
2 žingsnis) Toliau turime paspausti pelės mygtuką. Mes galime naudoti „ mousePress“ metodą kaip „ robot.mousePress“ („InputEvent.BUTTON1_DOWN_MASK“) .
3 žingsnis) Paspaudus pelę reikia atleisti. Norėdami paleisti kairįjį pelės paspaudimą, galime naudoti robot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK ).
Veikimo kodas naudojant testNG:
Norint paleisti kodą naudojant „Testng“, reikalinga „testNG“ priklausomybė arba „TestNG jar“ failo nurodytos bibliotekos priklausomybė.
TestNG priklausomybė:
org.testng testng 6.1.1
Pridėjus „Maven“ priklausomybę arba „jar“ failą. Turite importuoti testNG bandymo anotaciją. Kai viskas bus padaryta, tiesiog dešiniuoju pelės mygtuku spustelėkite programos kodą ir spustelėkite Vykdyti kaip, tada spustelėkite TestNG
... ir pamatysite, kad kodas pradės vykdyti naudodamas testNG API.Čia yra kodas
importuoti java.awt.AWTException;importuoti java.awt.Robot;importuoti java.awt.event.InputEvent;importuoti java.awt.event.KeyEvent;importuoti org.openqa.selenium.WebDriver;importuoti org.openqa.selenium.firefox.FirefoxDriver;importuoti org.testng.annotations.Test;viešoji klasė „Excersise1“ {@Testpublic static void vykdymas () meta InterruptedException, AWTException {„WebDriver“ tvarkyklė = nauja „FirefoxDriver“ ();vairuotojas.tvarkyti (). langas (). padidinti ();tvarkyklė.get ("http://spreadsheetpage.com/index.php/file/C35/P10/"); // pavyzdinis URLRobotas robotas = naujas robotas ();robotas.mouseMove (630, 420); // perkelkite pelės žymeklį į konkrečią vietąrobotas.delay (1500); // delsa yra priversti kodą laukti minėtų milisekundžių prieš vykdant kitą žingsnįrobotas.mousePress („InputEvent.BUTTON1_DOWN_MASK“); // paspauskite kairįjį pelės klavišąrobotas.mouseRelease („InputEvent.BUTTON1_DOWN_MASK“); // atleiskite kairįjį paspaudimąrobotas.delay (1500);robot.keyPress (KeyEvent.VK_DOWN); // paspauskite klaviatūros rodyklės klavišą, kad pasirinktumėte radijo mygtuką IšsaugotiSiūlai.miega (2000);robot.keyPress (KeyEvent.VK_ENTER);// paspauskite klaviatūros klavišą Enter, kad atliktumėte aukščiau pasirinktą veiksmą}}
Patikrinkite šį vaizdo įrašą, kad pamatytumėte, kaip jis veikia
Robotų klasės trūkumai
Robotų rėmuose yra keletas žemiau paminėtų trūkumų:
- Raktinių žodžių / pelių įvykis veiks tik dabartiniame „Window“ egzemplioriuje. Pvz., Tarkime, kad kodas vykdo bet kokį robotų klasės įvykį, o vykdant kodą vartotojas persikėlė į kitą ekraną, tada ekrane atsiras raktinių žodžių / pelių įvykis.
- Daugelis tokių metodų kaip „mouseMove“ priklauso nuo ekrano skiriamosios gebos, todėl gali būti tikimybė, kad vienoje mašinoje veikiantis kodas gali neveikti kitame.
Santrauka
Robotų klasė AWT pakete naudojama klaviatūros / pelės įvykiams generuoti, norint sąveikauti su OS langais ir vietinėmis programomis.
Pagrindinis „Robot“ tikslas yra palaikyti seleno automatizuotų bandymų projekto kūrimą „Java“ platformoje
Prie šio straipsnio prisidėjo Ramandeepas Singhas, kuris yra pirmaujančios MNC testavimo automatikos inžinierius.