Klasa robota
Klasa Robot w Selenium służy do automatycznego testowania implementacji platformy Java. Generuje zdarzenia wejściowe w natywnych systemach do automatyzacji testów, samodzielnych demonstracji i innych aplikacji, w których użytkownicy potrzebują kontroli nad myszą i klawiaturą. Klasa Robot jest łatwa w implementacji i można ją łatwo zintegrować ze zautomatyzowanym frameworkiem.
Dlaczego klasa robotów?
Klasa Robot jest używana w Selenium, ponieważ w niektórych testach automatyzacji Selenium użytkownicy potrzebują kontroli nad klawiaturą lub myszą, aby wchodzić w interakcje z oknami systemu operacyjnego, takimi jak wyskakujące okienka pobierania, wyskakujące okienka drukowania itp. Oraz natywne aplikacje, takie jak notatnik, kalkulator itp. Selenium Webdriver nie może obsłużyć tych wyskakujących okienek / aplikacji, więc w Javie w wersji 1.3 wprowadzono klasę robota, która może obsługiwać wyskakujące okienka / aplikacje systemu operacyjnego.
W tym samouczku dowiesz się,
- Korzyści z klasy robotów
- Dokumentacja klasy robotów
- Zrozumienie wewnętrznych metod i zastosowań klasy Robot
- Jak wykonać kod klasy robota za pomocą narzędzia testNG
- Wady klasy robotów
Korzyści z klasy robotów
- Klasa Robot może symulować zdarzenie klawiatury i myszy
- Robot Class może pomóc w wysyłaniu / pobieraniu plików przy użyciu sterownika sieciowego selenu
- Robot Class można łatwo zintegrować z aktualną platformą automatyzacji (słowo kluczowe, oparte na danych lub hybrydowe)
Co to jest dokumentacja klasy robotów?
Robot klasy Dokumentacja w Selen pomaga użytkownikom zrozumieć podstawową definicję, składnia i wykorzystanie wszystkich dostępnych metod i funkcji w klasie robota w pakiecie Java AWT. Użytkownicy mogą przeglądać dokumentację w oficjalnej witrynie Oracle. Użytkownicy mogą również samodzielnie tworzyć dokumentację na swoim komputerze lokalnym.
Aby utworzyć dokumentację na komputerze lokalnym, wykonaj poniższe czynności:
Krok 1) W folderze JDK znajdziesz plik src.zip. Skopiuj plik src.zip i rozpakuj go w innym folderze lub katalogu (powiedz D: lub E:)
Krok 2) Wyodrębnij folder src i przejdź do (ścieżka do folderu src) / src / java / awt
Krok 3) Skopiuj bieżącą lokalizację folderu awt i otwórz wiersz polecenia.
Krok 4) W cmd zmień bieżącą lokalizację katalogu na folder awt i wpisz „javadoc * .java”, jak pokazano poniżej
Poczekaj chwilę, aż system się przetworzy, po zakończeniu zobaczysz kilka plików HTML w folderze awt.
Krok 5) Otwórz plik index.html
Krok 6) Oto pełna dokumentacja pakietu awt, na lewym pasku nawigacji kliknij hiperłącze „Robot” (patrz 1 zaznaczone na poniższym obrazku).
Tutaj możesz również zobaczyć wszystkie metody i interfejsy klasy Robot (patrz 2 zaznaczone na powyższym obrazku).
Zrozumienie wewnętrznych metod i zastosowań klasy Robot
Metody klasy Robot mogą być używane do interakcji ze zdarzeniami klawiatury / myszy podczas wykonywania automatyzacji przeglądarki. Alternatywnie można użyć AutoIT, ale jego wadą jest to, że generuje plik wykonywalny (exe), który będzie działał tylko w systemie Windows, więc nie jest dobrym rozwiązaniem.
Niektóre powszechnie i popularne metody Robot Class podczas automatyzacji sieci:
- keyPress (): Przykład: robot.keyPress (KeyEvent.VK_DOWN): Ta metoda z naciśnięciem klawisza strzałki w dół na klawiaturze
- mousePress (): Przykład : robot.mousePress (InputEvent.BUTTON3_DOWN_MASK): Ta metoda spowoduje kliknięcie prawym przyciskiem myszy.
- mouseMove (): Przykład : robot.mouseMove (point.getX (), point.getY ()): Spowoduje to przesunięcie wskaźnika myszy do określonych współrzędnych X i Y.
- keyRelease (): Przykład: robot.keyRelease (KeyEvent.VK_DOWN): Ta metoda z klawiszem zwolnienia strzałki w dół na klawiaturze
- mouseRelease (): Przykład: robot.mouseRelease (InputEvent.BUTTON3_DOWN_MASK): Ta metoda zwolni prawy przycisk myszy
Przykładowy kod do automatyzacji typowych przypadków użycia za pomocą Robot Class
- Weźmy przykład witryny internetowej http://spreadsheetpage.com/index.php/file/C35/P10/, w której po kliknięciu elementu internetowego ( .//a[@href=contains(text(),'yearly- calendar.xls '] ) pojawi się wyskakujące okienko pobierania systemu operacyjnego.
- Aby sobie z tym poradzić, używamy klasy Robot (tworząc w kodzie instancję klasy Robot, powiedz Robot robot = new Robot () ). Klasę robotów prezentujemy w pakiecie AWT JDK.
- Aby nacisnąć klawisz strzałki w dół na klawiaturze, używamy ( robot.keyPress (KeyEvent.VK_DOWN))
- Aby nacisnąć klawisz TAB na klawiaturze (używamy robot.keyPress (KeyEvent.VK_TAB))
- Aby nacisnąć klawisz Enter, używamy ( robot.keyPress (KeyEvent.VK_ENTER)).
Oto przykładowy kod
import java.awt.AWTException;import java.awt.Robot;import java.awt.event.KeyEvent;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;class Excercise1 {public static void main (String [] args) rzuca AWTException, InterruptedException {Sterownik WebDriver = nowy FirefoxDriver ();driver.get („http://spreadsheetpage.com/index.php/file/C35/P10/”); // przykładowy adres URLdriver.findElement (By.xpath (".// a [@ href = zawiera (text (), 'yearly-calendar.xls')]")). click ();Robot robot = nowy Robot (); // Klasa Robot zgłasza wyjątek AWTThread.sleep (2000); // Thread.sleep zgłasza InterruptedExceptionrobot.keyPress (KeyEvent.VK_DOWN); // naciśnij klawisz strzałki w dół na klawiaturze, aby nawigować i wybierz opcję ZapiszThread.sleep (2000); // uśpienie zostało użyte tylko do pokazania każdego wydarzenia osobnorobot.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);// naciśnij klawisz Enter na klawiaturze, aby wykonać powyższą akcję}}
Obejrzyj ten film, aby zobaczyć, jak to działa
Jak wykonać kod klasy robota za pomocą TestNG
Ponieważ teraz znasz podstawowe metody klasy robotów, przyjrzyjmy się kilku bardziej złożonym metodom -
Załóżmy, że nie chcesz używać metody Click do klikania elementu WWW.
W takich przypadkach można skorzystać z metody mouseMove klasy Robot.
Krok 1) metoda mouseMove przyjmuje współrzędne xiy jako parametry, takie jak robot.mouseMove (630, 420), gdzie 630 oznacza oś x, a 420 oznacza oś y. Tak więc ta metoda przesunie wskaźnik myszy z bieżącej lokalizacji do wspomnianego punktu przecięcia xiy.
Krok 2) Następnie musimy nacisnąć przycisk myszy. Możemy użyć metody mousePress jak robot.mousePress (InputEvent.BUTTON1_DOWN_MASK) .
Krok 3) Po naciśnięciu mysz musi zostać zwolniona. Możemy użyć robota.mouseRelease (InputEvent.BUTTON1_DOWN_MASK ), aby zwolnić lewy przycisk myszy.
Uruchamianie kodu przy użyciu testNG:
Uruchamianie kodu przy użyciu Testng wymaga zależności maven od testNG lub biblioteki, do której odwołuje się plik jar TestNG.
Zależność TestNG Maven:
org.testng testng 6.1.1
Po dodaniu zależności maven lub pliku jar. Musisz zaimportować adnotację testową testNG. Po zakończeniu kliknij prawym przyciskiem myszy kod programu i kliknij Uruchom jako, a następnie kliknij TestNG
… A zobaczysz, że kod rozpocznie wykonywanie przy użyciu testNG API.Oto kod
import java.awt.AWTException;import java.awt.Robot;import java.awt.event.InputEvent;import java.awt.event.KeyEvent;import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;import org.testng.annotations.Test;public class Excersise1 {@Testpublic static void Execution () rzuca InterruptedException, AWTException {Sterownik WebDriver = nowy FirefoxDriver ();driver.manage (). window (). maximize ();driver.get („http://spreadsheetpage.com/index.php/file/C35/P10/”); // przykładowy adres URLRobot robot = nowy Robot ();robot.mouseMove (630, 420); // przesuń kursor myszy w określone miejscerobot.delay (1500); // opóźnienie polega na tym, aby kod czekał przez wspomniane milisekundy przed wykonaniem następnego krokurobot.mousePress (InputEvent.BUTTON1_DOWN_MASK); // naciśnij lewy przycisk myszyrobot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK); // zwolnij lewy przycisk myszyrobot.delay (1500);robot.keyPress (KeyEvent.VK_DOWN); // naciśnij klawisz strzałki na klawiaturze, aby wybrać przycisk opcji ZapiszThread.sleep (2000);robot.keyPress (KeyEvent.VK_ENTER);// naciśnij klawisz Enter na klawiaturze, aby wykonać powyższą akcję}}
Obejrzyj ten film, aby zobaczyć, jak to działa
Wady klasy robotów
Konstrukcja robota ma kilka wad wymienionych poniżej:
- Zdarzenie ze słowem kluczowym / myszą będzie działać tylko na bieżącej instancji Window. Np. Załóżmy, że kod wykonuje dowolne zdarzenie klasy robota, a podczas wykonywania kodu użytkownik przeniósł się na inny ekran, wtedy na tym ekranie pojawi się zdarzenie słowa kluczowego / myszy.
- Większość metod, takich jak mouseMove, zależy od rozdzielczości ekranu, więc może istnieć szansa, że kod działający na jednym komputerze może nie działać na innym.
Podsumowanie
Klasa Robot w pakiecie AWT służy do generowania zdarzeń klawiatury / myszy w celu interakcji z oknami systemu operacyjnego i aplikacjami natywnymi.
Podstawowym celem programu Robot jest obsługa projektów testów automatycznych selenu, budowanych na platformie Java
Ten artykuł jest autorstwa Ramandeep Singha, który jest inżynierem automatyzacji testów w wiodącej firmie MNC.