robot class selenium webdriver with java
Tento výukový program vysvetľuje použitie, príklady a funkcie triedy robotov v Jave a jej integráciu so selénovým rámcom:
Robot Java je a Robot trieda v Java Balík AWT. Spravidla sa používa na simuláciu operácií klávesnice a myši v reálnom čase, ktoré robíme manuálne.
Hlavným účelom triedy robotov v Jave je automatizácia. Krása je v tom, že sa dá ľahko integrovať do súčasného automatizačného rámca a zvýšiť tak jeho dosah.
Čo sa dozviete:
Trieda robota v Jave
V tomto výučbe sa dozvieme o integrácii selénu s robotickou triedou v Jave, ale všeobecne je možné Java robotickú triedu použiť v akomkoľvek automatizačnom rámci postavenom na Jave.
Simulujúce funkcie triedy robotov
Existuje veľa funkcií triedy Robot Class v Jave, ktoré sú uvedené nižšie a sú tu uvedené niektoré súvisiace metódy:
# 1) Funkcie klávesnice
Funkcie klávesnice triedy Robot sa všeobecne zaoberajú simuláciou rôznych klávesov dostupných na klávesniciach a ich operáciami.
Public void keyPress (int keycode)
Táto funkcia stlačí kláves vstupných parametrov. Na dokončenie operácie by sa mala použiť metóda uvoľnenia kľúča.
Postupujte podľa nižšie uvedeného útržku kódu:
r.keyPress(KeyEvent.VK_CONTROL); r.keyPress(KeyEvent.VK_V);
Tu vo vyššie uvedenom útržku kódu iba stlačíme kombináciu klávesov CTRL + V. Metóda KeyEvent je spojená s inými klávesmi, ktoré sú k dispozícii pre našu klávesnicu. Jeden môže vyskúšať všetky.
Public void keyRelease (int keycode)
Táto metóda uvoľní kľúč vstupného parametra. Toto je po operácii metódy stlačenia klávesov.
Postupujte podľa nižšie uvedeného útržku kódu:
r.keyRelease(KeyEvent.VK_V); r.keyRelease(KeyEvent.VK_CONTROL);
Tu vo vyššie uvedenom útržku kódu práve púšťame CTRL + V. Podobne ako je uvedené vyššie, metóda KeyEvent je tiež spojená s inými klávesmi, ktoré sú k dispozícii pre našu klávesnicu. Jeden môže vyskúšať všetky.
# 2) Funkcie myši
Funkcie myši sa zaoberajú simuláciou rôznych operácií myši.
Public void mouseMove (int x, int y)
Tu dva parametre určujú súradnice obrazovky. Akonáhle dáme súradnice, presunieme sa myšou do bodu daných súradníc obrazovky.
Postupujte podľa daného útržku kódu:
robot.mouseMove (0, 900);
Tu je pozícia parametra x 0 a parameter y je 900. Myš sa teda presunie do tohto bodu. Dá sa urobiť chybová a skúšobná metóda na presun do rôznych pozícií obrazovky.
Public void mousePress (int tlačidlá)
Možno si predstaviť túto funkcionalitu pomocou funkcií keyPress, aby sme dosiahli jasnú koncepciu. Táto metóda simuluje funkcie mousePress.
Postupujte podľa nižšie uvedeného útržku kódu:
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
Public void mouseRelease (int tlačidlá)
Možno si predstaviť túto funkcionalitu pomocou funkcií keyPress, aby sme dosiahli jasnú koncepciu. Táto metóda simuluje funkcie mousePress.
Postupujte podľa nižšie uvedeného útržku kódu:
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
Poznámka :Na prieskum je k dispozícii niekoľko ďalších metód. Vyššie uvedené metódy sú ale najčastejšie používané. Avšak na preskúmanie ďalších metód je možné vyhľadať triedu Robot Java v dokumentoch Oracle.
Využitie triedy robotov v Jave
Kedy a kde môžeme použiť Robot Class v Jave na efektívne vylepšenie funkčnosti v rámci automatizácie?
Ako všetci vieme, selén je možné použiť na automatizáciu webových aplikácií. Tieto webové aplikácie v seléne používajú podkladový webový objekt (lokátory) webovej aplikácie na určenie polohy na webovej stránke a na zodpovedajúce fungovanie. Teraz v určitých prípadoch vidíme, že pri automatizácii v operačnom systéme Windows musíme pracovať s vyskakovacím oknom autentifikácie systému Windows alebo s inými kontextovými oknami systému Windows.
Selén nemôže automatizovať akcie systému Windows, ale na splnenie úlohy môžeme použiť Robot Class v Jave.
Príklady triedy Java Robot
Príklad 1: Používanie triedy robotov na automatizáciu niektorých funkcií systému Windows
Akákoľvek malá časť / modul celej webovej aplikácie môže byť niekedy navrhnutá vo formáte flash. Na spracovanie tejto časti môžeme použiť triedu Robot. Pretože webové objekty zostávajú skryté pre časť navrhnutú vo formáte Flash.
kruhový prepojený zoznam v c ++
Ďalšou dôležitou funkciou, ktorú je možné automatizovať pomocou triedy Robot Class v Jave, sú editory formátovaného textu, ktoré niekedy zostávajú zabudované do webových aplikácií. V editoroch RTF existuje niekoľko prevádzkových funkcií, ktoré sa pomocou tejto triedy dajú celkom ľahko automatizovať.
Príklad 2: Používanie triedy robotov na automatizáciu polí RTF
Poznámka :Na trhu sú dostupné ďalšie nástroje typu open-source Auto IT (špeciálne navrhnutý na automatizáciu grafického používateľského rozhrania systému Windows), Sikuli (nástroj na spracovanie obrazu) atď. na vykonávanie podobných úloh.
To je pravda, ale trieda robotov v Jave sa dodáva s JDK. Inštalácia teda nevyžaduje žiadny ďalší nástroj, čo je priamou výhodou, ak niekto používa automatizačný rámec založený na prostredí Java.
Automatizácia polí RTF
Ukážkový obrázok:
Príklad úryvku:
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 boli dve funkcie editorov RTF automatizované pomocou ikony tučnou kurzívou.
Automatizácia niektorých funkcií systému 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(); } } }
Tento útržok kódu sa všeobecne zaoberá pravou stránkou počnúc od ikony Štart až po prezeranie konfigurácie systému. Použitím podobného konceptu je možné spracovať aj vyskakovacie okná okien pri spustení alebo medzi prevádzkou na webovej stránke.
Tipy na začlenenie robotickej Javy do existujúceho rámca Java + Selenium
Teraz uvidíme, ako upraviť vyššie demonštrovanú časť kódov, aby sme ich mohli umiestniť do existujúceho rámca Selenium + Java.
Upozorňujeme, že toto je koncept a existuje mnoho ďalších spôsobov, ako dosiahnuť to isté. Tento koncept môžeme ďalej rozšíriť / upraviť tak, aby vyhovoval obchodným potrebám, ktoré sa môžu u jednotlivých projektov líšiť.
Najskôr vytvorte triedu, ktorá bude obsahovať všetky bežné alebo robotom sprístupnené metódy, takže kedykoľvek je to potrebné, môžeme tieto metódy využiť v akýchkoľvek iných triedach, kde píšeme testovacie prípady.
Nasledujúce úryvky kódu to demonštrujú:
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 sme prijali niekoľko metód, podobne je možné pridať ďalšie metódy podľa ich projektových potrieb.
Každá metóda je pripojená k jednému prípadu prepínača, takže kľúčové slovo prípadu je možné použiť, kedykoľvek a kdekoľvek je to potrebné.
Teraz sa pozrime, ako môžeme transformovať kód, ktorý sme napísali, aby sme automatizovali editor RTF:
Prečítajte si nasledujúci úryvok kódu, aby ste pochopili, že:
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(); } } }
Vytvárame objekt triedy CommonRobotMethods vo vnútri triedy seleniumFramework a pristupujeme k metódam definovaným v triede CommonRobotMethods cez. Prepnite kľúčové slová definované v triede CommonRobotMethods.
Tu sme vytvorili rozhranie na zapisovanie všetkých vstupov, ktoré je možné externalizovať. Dá sa ale rozdeliť a zapísať do excelu / vlastností alebo rozhrania podľa ich úrovne pohodlia alebo obchodných potrieb.
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'; }
Záver
Dúfajme, že teraz je jasné, ako využiť robotickú triedu v rámci systému Selenium + Java. Prajeme všetkým, aby tento článok považovali za zaujímavý a nápomocný pri osvojovaní si koncepcie.
Odporúčané čítanie
- Výukový program Cucumber Selenium: Cucumber Java Selenium WebDriver Integration
- Základy jazyka Java: Java Syntax, trieda Java a základné koncepty Java
- Preskúmajte základy Java v seléne pomocou príkladov
- Integrácia selénu s JMeter
- Výukový program triedy skenerov Java s príkladmi
- Výukový program triedy Java Array - java.util. Trieda polí s príkladmi
- Čo je Java Vector | Výukový program Java Vector Class s príkladmi
- Výukový program pre rozhranie Java a abstraktnú triedu s príkladmi