Клас робот
Robot Class в Selenium се използва, за да даде възможност за автоматизирано тестване за внедряване на платформата Java. Той генерира входни събития в родните системи за автоматизация на тестове, самодействащи се демонстрации и други приложения, където потребителите се нуждаят от контрол върху мишката и клавиатурата. Класът робот е лесен за изпълнение и може лесно да се интегрира с автоматизирана рамка.
Защо Robot Class?
Класът робот се използва в Selenium, тъй като при някои тестове за автоматизация на Selenium потребителите се нуждаят от контрол върху клавиатурата или мишката, за да си взаимодействат с прозорци на OS като изскачащи прозорци за изтегляне, изскачащи прозорци за печат и др. Webdriver не може да се справи с тези изскачащи прозорци / приложения, така че в Java версия 1.3 е представен клас робот, който може да обработва изскачащи прозорци / приложения на OS.
В този урок ще научите,
- Предимства на Robot Class
- Документация за клас робот
- Разбиране на вътрешните методи и употреба на Robot Class
- Как да изпълня кода на клас робот, използвайки testNG
- Недостатъци на клас робот
Предимства на Robot Class
- Класът робот може да симулира събитие на клавиатурата и мишката
- Robot Class може да помогне при качване / изтегляне на файлове, когато се използва уеб драйвер за селен
- Robot Class може лесно да бъде интегриран с текущата рамка за автоматизация (ключова дума, управлявана от данни или хибридна)
Какво е документация за клас на робот?
В документацията Robot клас в Селенът помага на потребителите да разберат основната дефиниция, синтаксиса и използването на всички методи и функции, налични в робот клас в Java AWT пакет. Потребителите могат да разглеждат документацията на официалния уебсайт на Oracle. Потребителите могат също така сами да създават документацията на своята локална машина.
За да създадете документацията на локална машина, следвайте стъпките по-долу -
Стъпка 1) Ще намерите файла src.zip в папката JDK. Копирайте src.zip и извлечете същото в друга папка или директория (да речем D: или E:)
Стъпка 2) Извличане на папка src и навигиране до (път до папката src) / src / java / awt
Стъпка 3) Копирайте текущото местоположение на папката awt и отворете командния ред.
Стъпка 4) В cmd променете текущото си местоположение в директорията на awt папка и въведете „javadoc * .java“, както е показано по-долу
Изчакайте известно време, докато системата се обработи, след като завършите, ще видите няколко HTML файла в папката awt.
Стъпка 5) Отворете index.html
Стъпка 6) Ето ви пълна документация за пакета awt, от лявата навигационна лента щракнете върху хипервръзката „Робот“ (Вижте 1, отбелязана в долното изображение)
Тук можете също да видите всички методи и интерфейси на Robot Class (Вижте 2, отбелязано в горното изображение).
Разбиране на вътрешните методи и употреба на Robot Class
Методите Robot Class могат да се използват за взаимодействие със събития от клавиатура / мишка, докато се извършва автоматизация на браузъра. Като алтернатива може да се използва AutoIT, но неговият недостатък е, че той генерира изпълним файл (exe), който ще работи само на Windows, така че не е добра опция за използване.
Някои често и популярни методи на Robot Class по време на уеб автоматизация:
- keyPress (): Пример: robot.keyPress (KeyEvent.VK_DOWN): Този метод с натискане на клавиша със стрелка надолу на клавиатурата
- mousePress (): Пример : robot.mousePress (InputEvent.BUTTON3_DOWN_MASK): Този метод ще натисне десния бутон на мишката.
- mouseMove (): Пример : robot.mouseMove (point.getX (), point.getY ()): Това ще премести показалеца на мишката към посочените координати X и Y.
- keyRelease (): Пример: robot.keyRelease (KeyEvent.VK_DOWN): Този метод с клавиш със стрелка надолу на клавиатурата
- mouseRelease (): Пример: robot.mouseRelease (InputEvent.BUTTON3_DOWN_MASK): Този метод ще освободи десния бутон на мишката
Примерен код за автоматизиране на често използвани случаи, използвайки Robot Class
- Нека да вземем пример за уебсайт http://spreadsheetpage.com/index.php/file/C35/P10/, където след като щракнете върху уеб елемент ( .//a[@href=contains(text(),'yearly- calendar.xls '] ) се появява изскачащ прозорец за изтегляне на ОС.
- За да се справим с това, ние използваме Robot class (чрез създаване на екземпляр на Robot Class във вашия код кажете Robot robot = new Robot () ) Клас робот, който присъстваме в пакета AWT на JDK.
- За да натиснем клавиша със стрелка надолу на клавиатурата, която използваме ( robot.keyPress (KeyEvent.VK_DOWN))
- За да натиснете клавиша TAB на клавиатурата (използваме robot.keyPress (KeyEvent.VK_TAB))
- За да натиснем клавиша Enter, използваме ( robot.keyPress (KeyEvent.VK_ENTER)).
Ето примерен код
импортиране на java.awt.AWTException;импортиране на java.awt.Robot;импортиране на java.awt.event.KeyEvent;внос org.openqa.selenium.By;импортиране на org.openqa.selenium.WebDriver;импортиране на org.openqa.selenium.firefox.FirefoxDriver;клас Упражнение1 {public static void main (String [] args) хвърля AWTException, InterruptedException {Драйвер за WebDriver = нов FirefoxDriver ();driver.get ("http://spreadsheetpage.com/index.php/file/C35/P10/"); // примерен URL адресdriver.findElement (By.xpath (".// a [@ href = contains (text (), 'yearly-calendar.xls')]")). click ();Робот робот = нов робот (); // Робот клас изхвърля AWT изключениеThread.sleep (2000); // Thread.sleep хвърля InterruptedExceptionrobot.keyPress (KeyEvent.VK_DOWN); // натиснете клавиша със стрелка надолу на клавиатурата, за да навигирате и изберете радио бутона SaveThread.sleep (2000); // сънят се използва само за демонстриране на всяко събитие поотделноrobot.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);// натиснете клавиша за въвеждане на клавиатурата, за да извършите над избраното действие}}
Проверете това видео, за да го видите в действие
Как да изпълня кода на клас робот с помощта на TestNG
Тъй като сега знаете основните методи на Robot Class, така че нека разберем няколко по-сложни метода -
Да предположим, че не искате да използвате метода на щракване за щракване върху уеб елемент.
В такива случаи можете да използвате метода mouseMove от класа Robot.
Стъпка 1) Методът mouseMove взема координатите x и y като параметри като robot.mouseMove (630, 420), където 630 показва оста x, а 420 показва оста y. И така, този метод ще премести курсора на мишката от текущото местоположение в споменатата точка на пресичане x и y.
Стъпка 2) След това трябва да натиснем бутона на мишката. Можем да използваме метода mousePress като robot.mousePress (InputEvent.BUTTON1_DOWN_MASK) .
Стъпка 3) След натискане, мишката трябва да бъде освободена. Можем да използваме robot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK ), за да освободим левия бутон на мишката.
Изпълняващ код, използващ testNG:
Изпълняващият код с помощта на Testng изисква maven зависимост на testNG или реферирана библиотека на TestNG jar файла.
Зависимост на Maven на TestNG:
<зависимост>org.testng testng 6.1.1
След добавяне на зависимост от maven или jar файл. Трябва да импортирате тестова анотация на testNG. След като приключите, просто щракнете с десния бутон върху програмния код и щракнете върху Изпълни като след това щракнете върху TestNG
... и ще откриете, че кодът ще започне изпълнението си с помощта на testNG API.Ето кода
импортиране на java.awt.AWTException;импортиране на java.awt.Robot;импортиране на java.awt.event.InputEvent;импортиране на java.awt.event.KeyEvent;импортиране на org.openqa.selenium.WebDriver;импортиране на org.openqa.selenium.firefox.FirefoxDriver;внос org.testng.annotations.Test;публичен клас Excersise1 {@Тестpublic static void изпълнение () хвърля InterruptedException, AWTException {Драйвер за WebDriver = нов FirefoxDriver ();driver.manage (). window (). maximize ();driver.get ("http://spreadsheetpage.com/index.php/file/C35/P10/"); // примерен URL адресРобот робот = нов робот ();robot.mouseMove (630, 420); // преместване на точката на мишката на определено мястоrobot.delay (1500); // закъснението е да накарате кода да изчака споменатите милисекунди преди да изпълни следващата стъпкаrobot.mousePress (InputEvent.BUTTON1_DOWN_MASK); // натиснете левия бутонrobot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK); // освобождаване на левия бутонrobot.delay (1500);robot.keyPress (KeyEvent.VK_DOWN); // натиснете клавиша със стрелка на клавиатурата, за да изберете радио бутона SaveThread.sleep (2000);robot.keyPress (KeyEvent.VK_ENTER);// натиснете клавиша за въвеждане на клавиатурата, за да извършите над избраното действие}}
Проверете това видео, за да го видите в действие
Недостатъци на Robot Class
Роботната рамка има няколко недостатъка, споменати по-долу:
- Събитие за ключова дума / мишка ще работи само в текущия екземпляр на Window. Например, да предположим, че код изпълнява всяко събитие от клас робот и по време на изпълнението на кода потребителят се е преместил на друг екран, тогава на този екран ще се появи събитие ключова дума / мишка.
- Повечето от методите като mouseMove зависят от разделителната способност на екрана, така че може да има вероятност кодът, работещ на една машина, да не работи на друга.
Обобщение
Класът робот в пакета AWT се използва за генериране на събития от клавиатура / мишка за взаимодействие с прозорци на ОС и собствени приложения.
Основната цел на Robot е да поддържа изграждането на проект за автоматизирани тестове за селен в Java платформа
Тази статия е предоставена от Рамандип Сингх, който е инженер по автоматизация на тестове във водещ MNC.