robot class selenium webdriver with java
Ta vadnica razlaga uporabo, primere in funkcije razreda robotov v Javi in njegovo integracijo s selenijskim ogrodjem:
Robot Java je Robot razred v Java Paket AWT. Običajno se uporablja za simulacijo operacij tipkovnice in miške v realnem času, ki jih izvajamo ročno.
Glavni namen razreda robotov v Javi je avtomatizacija. Lepota tega je, da ga je mogoče enostavno integrirati s trenutnim avtomatizacijskim okvirom, da poveča svoj doseg.
Kaj se boste naučili:
Razred robotov v Javi
V tej vadnici bomo izvedeli več o integraciji selena z razredom robotov v Javi, vendar se na splošno lahko razred Java Robot uporablja v katerem koli avtomatiziranem okviru, zgrajenem na Javi.
Simulacija funkcionalnosti razreda robotov
V Javi obstaja veliko funkcij razreda robotov, spodaj je navedenih nekaj omenjenih metod, povezanih z njimi:
# 1) Funkcije tipkovnice
Funkcije tipkovnice razreda Robot se na splošno ukvarjajo s simulacijo različnih tipk, ki so na voljo v tipkovnicah, in njihovega delovanja.
Javna void keyPress (int keycode)
Ta funkcija pritisne tipko vhodnega parametra. Za dokončanje operacije je treba uporabiti način sprostitve ključa.
Sledite spodnjemu delčku kode:
r.keyPress(KeyEvent.VK_CONTROL); r.keyPress(KeyEvent.VK_V); Tukaj, v zgornjem delčku kode, samo pritiskamo CTRL + V. Metoda KeyEvent je povezana z drugimi tipkami, ki so na voljo naši tipkovnici. Poskusite lahko vse.
Sprostitev javnega void key (int keycode)
Ta metoda sprosti ključ vhodnega parametra. To je operacija po metodi pritiska tipke.
Sledite spodnjemu delčku kode:
r.keyRelease(KeyEvent.VK_V); r.keyRelease(KeyEvent.VK_CONTROL); Tukaj v zgornjem delčku kode sproščamo CTRL + V. Podobno kot zgoraj je metoda KeyEvent povezana tudi z drugimi tipkami, ki so na voljo na naši tipkovnici. Poskusite lahko vse.
# 2) Funkcije miške
Funkcije miške se ukvarjajo s simulacijo različnih operacij miške.
Javna void mouseMove (int x, int y)
Tu parametra določata koordinate zaslona. Ko damo koordinate, se miška premakne na točko danih koordinat zaslona.
Sledite podanemu delčku kode:
robot.mouseMove (0, 900);
Tu je položaj x parametra 0, y pa 900. Tako se bo miška premaknila na to točko. Za premik na različne položaje zaslona lahko uporabimo način napake in preizkusa.
Javna void mousePress (int gumbi)
Lahko si predstavljamo to funkcionalnost s funkcijami keyPress, da dobimo jasno zasnovo. Ta metoda simulira funkcije mousePress.
Sledite spodnjemu delčku kode:
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK); //associated with mouse left click robot.mousePress(InputEvent.BUTTON2_DOWN_MASK); //associated with mouse middle click robot.mousePress(InputEvent.BUTTON3_DOWN_MASK); //associated with mouse right click Sprostitev javnega void mouse (int gumbi)
Lahko si predstavljamo to funkcionalnost s funkcijami keyPress, da dobimo jasno zasnovo. Ta metoda simulira funkcije mousePress.
Sledite spodnjemu delčku kode:
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK); //associated with mouse left click robot.mouseRelease(InputEvent.BUTTON2_DOWN_MASK); //associated with mouse middle click robot.mouseRelease(InputEvent.BUTTON3_DOWN_MASK); //associated with mouse right click Opomba :Za raziskovanje je na voljo več drugih metod. Toda zgornje metode so najpogosteje uporabljene. Za raziskovanje drugih metod pa lahko poiščemo razred Java Robot v Oracle dokumentih.
Uporaba razreda robota v Javi
Kdaj in kje lahko uporabimo razred robotov v Javi za učinkovito izboljšanje funkcionalnosti v okviru avtomatizacije?
Kot vsi vemo, da se Selenium lahko uporablja za avtomatizacijo spletnih aplikacij. Te spletne aplikacije v programu Selenium uporabljajo osnovni spletni objekt (lokatorje) spletne aplikacije za določanje položaja na spletni strani in ustrezno delovanje. Zdaj v nekaterih primerih vidimo, da moramo med avtomatizacijo v operacijskem sistemu Windows obravnavati pojavna okna za preverjanje pristnosti oken ali katera koli druga pojavna okna.
Selenium ne more avtomatizirati dejanj sistema Windows, vendar lahko za izvedbo naloge uporabimo razred robotov v Javi.
Primeri razreda Java Robot
Primer 1: Uporaba razreda robotov za avtomatizacijo nekaterih funkcij sistema Windows
Včasih je lahko kateri koli majhen del / modul celotne spletne aplikacije zasnovan bliskovito. Za obdelavo tega dela lahko uporabimo razred Robot. Ker spletni predmeti ostanejo skriti za del, zasnovan v bliskavici.
kar je najboljši pretvornik za youtube v mp3
Druga pomembna lastnost, ki jo je mogoče avtomatizirati z uporabo Robot Class v Javi, so urejevalniki obogatenega besedila, ki so včasih vdelani v spletne aplikacije. V urejevalnikih RTF obstaja več operativnih funkcij, kar je zelo enostavno avtomatizirati z uporabo tega razreda.
2. primer: Uporaba Robot Class za avtomatizacijo RTF polj
Opomba :Na trgu so na voljo tudi druga odprtokodna orodja, kot so Samodejno IT (posebej zasnovan za avtomatizacijo grafičnega uporabniškega vmesnika Windows), Sikuli (orodje za obdelavo slik) itd. za izvajanje podobnih nalog.
To drži, toda Robot Class v Javi je opremljen z JDK. Zato za namestitev ne potrebujemo nobenega drugega orodja, to je neposredna prednost, če uporabljate sistem za avtomatizacijo, ki temelji na Javi.
Avtomatizacija RTF polj
Vzorčna slika:

Primer delčka:
import java.awt.AWTException; import java.awt.Robot; import java.awt.Toolkit; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.StringSelection; import java.awt.event.KeyEvent; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class javainteraction { public void seleniumwithjava() throws AWTException, InterruptedException { System.setProperty('webdriver.chrome.driver', 'D://chromedriver//chromedriver.exe'); WebDriver driver =new ChromeDriver(); driver.get('https://www.tinymce.com' ); driver.manage().window().maximize(); driver.findElement(By.xpath('(//div(contains(@aria-label,'Bold'))//i(contains(@class,'mce-i-bold')))(1)')).click(); Robot r = new Robot(); String text = 'Welcome to the world of automation.'; StringSelection stringSelection = new StringSelection(text); Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); clipboard.setContents(stringSelection, stringSelection); r.keyPress(KeyEvent.VK_CONTROL); r.keyPress(KeyEvent.VK_V); r.keyRelease(KeyEvent.VK_V); r.keyRelease(KeyEvent.VK_CONTROL); Thread.sleep(1000); String text1 = 'Hope you enjoy This'; StringSelection stringSelection1 = new StringSelection(text1); Clipboard clipboard1 = Toolkit.getDefaultToolkit().getSystemClipboard(); clipboard1.setContents(stringSelection1, stringSelection1); r.keyPress(KeyEvent.VK_CONTROL); r.keyPress(KeyEvent.VK_V); r.keyRelease(KeyEvent.VK_V); r.keyRelease(KeyEvent.VK_CONTROL); driver.findElement(By.xpath('(//div(contains(@aria-label,'Italic'))//i(contains(@class,'mce-i-italic')))(1)')).click(); } public static void main(String args()) throws AWTException, InterruptedException { javainteraction j1 = new javainteraction(); j1.seleniumwithjava(); } }Tu sta dve funkciji urejevalnikov RTF avtomatizirani s pomočjo ikone krepko in ležeče.
Avtomatizacija nekaterih funkcij sistema Windows
import java.awt.AWTException; import java.awt.Robot; import java.awt.event.InputEvent; public class RobotJ { public static void main(String() args) { // TODO Auto-generated method stub Robot robot; try { robot = new Robot(); robot.mouseMove(0, 900); robot.delay(1000); robot.mousePress(InputEvent.BUTTON1_MASK); robot.mouseRelease(InputEvent.BUTTON1_MASK); robot.delay(1000); robot.mouseMove(300, 490); robot.mousePress(InputEvent.BUTTON3_DOWN_MASK); robot.mouseRelease(InputEvent.BUTTON3_DOWN_MASK); robot.delay(1000); robot.mouseMove(400, 690); robot.delay(1000); robot.mousePress(InputEvent.BUTTON1_MASK); robot.mouseRelease(InputEvent.BUTTON1_MASK); robot.delay(1000); robot.mouseMove(1300, 150); } catch (AWTException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } Ta delček kode se na splošno ukvarja z začetkom od ikone začetka do ogleda sistemske konfiguracije. S podobnim konceptom lahko obdelujete tudi pojavna okna, ki se generirajo med zagonom ali med operacijo na spletni strani.
Nasveti za vključitev robotske jave v obstoječi okvir Java + Selenium
Zdaj bomo videli, kako spremeniti zgoraj prikazani del kod, tako da ga lahko prilagodimo v obstoječi okvir Selenium + Java.
Upoštevajte, da gre za koncept in obstaja še veliko drugih načinov, kako to doseči. Ta koncept lahko nadalje razširimo / spremenimo tako, da ustreza poslovnim potrebam, ki se lahko razlikujejo od projekta do projekta.
Najprej ustvarite razred, ki bo vseboval vse običajne ali robotske metode, ki so na voljo, tako da bomo te metode lahko uporabili v vseh drugih razredih, kjer pišemo testne primere.
Spodnji delčki kode to dokazujejo:
import java.awt.AWTException; import java.awt.Robot; import java.awt.event.InputEvent; import java.awt.event.KeyEvent; public class CommonRobotMethods { Robot robot; int a= 0,b= 900; //This value can be exported from property file or excel sheet instead of direct input to the code public void LeftClickMouse() throws AWTException { robot = new Robot(); robot.mousePress(InputEvent.BUTTON1_DOWN_MASK); robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK); } public void MiddleClickMouse() throws AWTException { robot = new Robot(); robot.mousePress(InputEvent.BUTTON2_DOWN_MASK); robot.mouseRelease(InputEvent.BUTTON2_DOWN_MASK); } public void RightClickMouse() throws AWTException { robot = new Robot(); robot.mousePress(InputEvent.BUTTON2_DOWN_MASK); robot.mouseRelease(InputEvent.BUTTON2_DOWN_MASK); } public void MouseMove(int x, int y) throws AWTException { robot = new Robot(); robot.mouseMove(x,y); } public void KeyPressCTRL() throws AWTException { robot = new Robot(); robot.keyPress(KeyEvent.VK_CONTROL); } public void KeyReleaseCTRL() throws AWTException { robot = new Robot(); robot.keyRelease(KeyEvent.VK_CONTROL); } public void KeyPressV() throws AWTException { robot = new Robot(); robot.keyPress(KeyEvent.VK_V); } public void KeyReleaseV() throws AWTException { robot = new Robot(); robot.keyRelease(KeyEvent.VK_V); } public String RobotJavaMethods(String utilityMethod) { switch(utilityMethod) { case 'LeftClickMouse': try { LeftClickMouse(); } catch(AWTException e) { //Write any thing to track the error } break; case 'MiddleClickMouse': try { MiddleClickMouse(); } catch(AWTException e) { //Write any thing to track the error } break; case 'RightClickMouse': try { RightClickMouse(); } catch(AWTException e) { //Write any thing to track the error } break; case 'MouseMove': try { MouseMove(a,b); } catch(AWTException e) { //Write any thing to track the error } break; case 'KeyPressCTRL': try { KeyPressCTRL(); } catch(AWTException e) { //Write any thing to track the error } break; case 'KeyReleaseCTRL': try { KeyReleaseCTRL(); } catch(AWTException e) { //Write any thing to track the error } break; case 'KeyPressV': try { KeyPressV(); } catch(AWTException e) { //Write any thing to track the error } break; case 'KeyReleaseV': try { KeyReleaseV(); } catch(AWTException e) { //Write any thing to track the error } break; default: System.out.println('UnHandled error'); } return utilityMethod; } } Tu smo uporabili nekaj metod, pri čemer lahko podobno dodamo druge metode glede na njihove projektne potrebe.
Vsaka metoda je priložena enemu ohišju stikala, tako da se ključna beseda primera lahko uporablja kadar koli in kjer koli je to potrebno.
Zdaj pa poglejmo, kako lahko transformiramo kodo, ki smo jo napisali, za avtomatizacijo urejevalnika RTF:
Oglejte si spodnji delček kode, da boste razumeli, da:
import java.awt.Robot; import java.awt.Toolkit; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.StringSelection; import java.awt.event.KeyEvent; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class seleniumFramework { public void actualOperationalMethod() throws InterruptedException { CommonRobotMethods cm = new CommonRobotMethods(); System.setProperty('webdriver.chrome.driver', UtilityPathandLoc.Chromedriver_path); WebDriver driver =new ChromeDriver(); driver.get(UtilityPathandLoc.APPURL); driver.manage().window().maximize(); driver.findElement(By.xpath(UtilityPathandLoc.Bold_loc)).click(); String text = UtilityPathandLoc.First_input; StringSelection stringSelection = new StringSelection(text); Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); clipboard.setContents(stringSelection, stringSelection); cm.RobotJavaMethods('KeyPressCTRL'); cm.RobotJavaMethods('KeyPressV'); cm.RobotJavaMethods('KeyReleaseV'); cm.RobotJavaMethods('KeyReleaseCTRL'); Thread.sleep(1000); String text1 = UtilityPathandLoc.Second_input; StringSelection stringSelection1 = new StringSelection(text1); Clipboard clipboard1 = Toolkit.getDefaultToolkit().getSystemClipboard(); clipboard1.setContents(stringSelection1, stringSelection1); cm.RobotJavaMethods('KeyPressCTRL'); cm.RobotJavaMethods('KeyPressV'); cm.RobotJavaMethods('KeyReleaseV'); cm.RobotJavaMethods('KeyReleaseCTRL'); driver.findElement(By.xpath(UtilityPathandLoc.Italics_loc)).click(); } public static void main(String args()) { seleniumFramework s1 = new seleniumFramework(); try { s1.actualOperationalMethod(); } catch (InterruptedException e) { e.printStackTrace(); } } } Ustvarjamo objekt razreda CommonRobotMethods znotraj razreda seleniumFramework in prek. Dostopamo do metod, opredeljenih v razredu CommonRobotMethods. Preklopite ključne besede, definirane v razredu CommonRobotMethods.
Tu smo ustvarili vmesnik za zapisovanje vseh vhodov, ki jih je mogoče eksternalizirati. Lahko pa delimo in pišemo v excelu / lastnostih ali vmesnikih glede na njihovo raven udobja ali poslovne potrebe.
public interface UtilityPathandLoc { String APPURL= 'https://www.tinymce.com'; String Chromedriver_path = 'D://chromedriver//chromedriver.exe'; String Bold_loc = '(//div(contains(@aria-label,'Bold'))//i(contains(@class,'mce-i-bold')))(1)'; String Italics_loc = '(//div(contains(@aria-label,'Italic'))//i(contains(@class,'mce-i-italic')))(1)'; String First_input = 'Welcome to the world of automation.'; String Second_input = 'Hope you enjoy This'; } Zaključek
Upajmo, da je zdaj jasno, kako uporabiti razred robotov v okviru Selenium + Java. Želimo si, da bi bil ta članek zanimiv in koristen pri učenju koncepta.
Priporočeno branje
- Vadnica za kumare selena: Integracija kumar Java Selenium WebDriver
- Osnove Java: Sintaksa Java, Razred Java in Osnovni koncepti Java
- Raziščite osnove Jave v selenu s primeri
- Integracija selena z JMeter
- Vadnica razreda Java Scanner Class z primeri
- Vadnica razreda Java Array - java.util.Arrays Class s primeri
- Kaj je Java Vector | Vadnica Java Vector Class s primeri
- Vadnica Java vmesnika in abstraktnega razreda s primeri