Klasa robota w Selenium Sterownik internetowy

Czym jest klasa robota Selenium?

Klasa robota in Selenium służy do umożliwienia automatycznego testowania implementacji Java platforma. Generuje zdarzenia wejściowe w systemach natywnych na potrzeby automatyzacji testów, samoczynnie uruchamiających się wersji demonstracyjnych i innych aplikacji, w których użytkownicy potrzebują kontroli nad myszą i klawiaturą. Klasa robota jest łatwa do wdrożenia i można ją łatwo zintegrować z zautomatyzowanym frameworkiem.

Dlaczego klasa robotów?

Klasa robota stosuje się Selenium ponieważ w pewnym sensie Selenium testy automatyczne, użytkownicy muszą mieć kontrolę nad klawiaturą lub myszą, aby móc obsługiwać okna systemu operacyjnego, takie jak okna pobierania i drukowania, a także aplikacje natywne, takie jak notatnik, kalkulator itp. Selenium Webdriver nie obsługuje tych wyskakujących okienek/aplikacji, więc w Java w wersji 1.3 wprowadzono klasę robota, która obsługuje wyskakujące okienka/aplikacje systemu operacyjnego.

Dokumentacja klasy robota

Kurs Dokumentacja klasy robota in Selenium pomaga użytkownikom zrozumieć podstawową definicję, składnię i zastosowanie wszystkich metod i funkcji dostępnych w klasie robotów Java Pakiet AWT. Użytkownicy mogą przeglądać dokumentację na stronie Urzędnik Oracle Zbieranie danych analitycznych o stronach internetowych lub aplikacjach (aby sprawdzić, czy strona działa poprawnie lub które sekcje strony są najbardziej atrakcyjne dla odwiedzających).. 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) Plik src.zip znajdziesz w folderze JDK. Skopiuj plik src.zip i rozpakuj go w innym folderze lub katalogu (powiedzmy D: lub E: )

Dokumentacja klasy robota

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 poleceń.

Krok 4) W cmd zmień bieżącą lokalizację katalogu na folder awt i wpisz „javadoc *.java”, jak pokazano poniżej

Dokumentacja klasy robota

Poczekaj chwilę, aż system przetworzy proces. Po zakończeniu zobaczysz kilka plików HTML w folderze awt.

Krok 5) Otwórz plik indeks.html

Dokumentacja klasy robota

Krok 6) Oto pełna dokumentacja pakietu awt. Na lewym pasku nawigacyjnym kliknij hiperłącze „Robot” (patrz punkt 1 zaznaczony na obrazku poniżej).

Dokumentacja klasy robota

Tutaj możesz także zobaczyć wszystkie metody i interfejsy klasy Robot (patrz 2 zaznaczone na powyższym obrazku).

Metody klas robotów w Selenium i użytkowania

Metod klasy Robot można używać do interakcji ze zdarzeniami klawiatury/myszy podczas automatyzacji przeglądarki. Alternatywnie AutoIT można używać, ale jego wadą jest to, że generuje plik wykonywalny (exe), który działa tylko w systemie Windows, więc nie jest to dobry wybór.

Niektóre powszechnie i popularne metody klasy Robot podczas automatyzacji sieci:

Metoda 1: naciśnięcie klawisza():

robot.keyPress(KeyEvent.VK_DOWN): Ta metoda polega na naciśnięciu klawisza strzałki w dół na klawiaturze

Metoda 2: myszPress():

robot.mousePress(InputEvent.BUTTON3_DOWN_MASK): Ta metoda polega na naciśnięciu prawego przycisku myszy.

Metoda 3: myszMove():

robot.mouseMove(point.getX(), point.getY()): Spowoduje to przesunięcie wskaźnika myszy do określonych współrzędnych X i Y.

Metoda 4: keyRelease():

robot.keyRelease(KeyEvent.VK_DOWN): Ta metoda z klawiszem strzałki zwalniającej klawiaturę w dół

Metoda 5: MouseRelease():

robot.mouseRelease(InputEvent.BUTTON3_DOWN_MASK): Ta metoda zwolni kliknięcie prawym przyciskiem myszy

Przykładowy kod do automatyzacji typowych przypadków użycia przy użyciu klasy Robot

  • 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 instancję klasy Robot w kodzie, powiedzmy Robot-robot = nowy robot()) . Klasa robota obecna w pakiecie AWT JDK.
Klawisz na klawiaturze Metoda wykonania
Aby nacisnąć klawisz strzałki w dół używamy (robot.keyPress(KeyEvent.VK_DOWN))
Aby nacisnąć klawisz TAB używamy (robot.keyPress(KeyEvent.VK_TAB))
Aby nacisnąć klawisz Enter używamy (robot.keyPress(KeyEvent.VK_ENTER))

Przykład klasy robota w Selenium

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) throws AWTException, InterruptedException {	
           WebDriver driver = new FirefoxDriver();	
           driver.get("http://spreadsheetpage.com/index.php/file/C35/P10/"); // sample url	
           driver.findElement(By.xpath(".//a[@href=contains(text(),'yearly-calendar.xls')]")).click();	
           Robot robot = new Robot();  // Robot class throws AWT Exception	
           Thread.sleep(2000); // Thread.sleep throws InterruptedException	
           robot.keyPress(KeyEvent.VK_DOWN);  // press arrow down key of keyboard to navigate and select Save radio button	
           
           Thread.sleep(2000);  // sleep has only been used to showcase each event separately	
           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);	
       // press enter key of keyboard to perform above selected action	
     }	 
 }

Obejrzyj ten film, aby zobaczyć go w akcji

Jak wykonać kod klasy robota za pomocą TestNG

Ponieważ znasz już podstawowe metody klasy Robot, zapoznaj się z kilkoma bardziej złożonymi metodami –

Załóżmy, że nie chcesz używać metoda kliknięcia za kliknięcie elementu internetowego.

W takich przypadkach można skorzystać z metody MouseMove klasy Robot.

Krok 1) Metoda MouseMove przyjmuje współrzędne x i y jako parametry, takie jak robot.mouseMove(630, 420) gdzie 630 oznacza oś x, a 420 oznacza oś y. Zatem ta metoda przesunie wskaźnik myszy z bieżącej lokalizacji do wspomnianego punktu przecięcia x i y.

Krok 2) Następnie musimy nacisnąć przycisk myszy. Możemy skorzystać z tej metody myszNaciśnij lubić robot.mousePress(InputEvent.BUTTON1_DOWN_MASK) .

Krok 3) Po naciśnięciu mysz musi zostać zwolniona. Możemy użyć robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK), aby zwolnić lewy przycisk myszy.

Uruchamianie kodu za pomocą testNG:

Uruchamianie kodu za pomocą Testowanie wymaga zależności maven od testNG lub biblioteki referencyjnej TestNG plik jar.

TestNG zależność mavena:

<dependency>	
  <groupId>org.testng</groupId>
  <artifactId>testng</artifactId>	
  <version>6.1.1</version>	
</dependency>

Po dodaniu zależności maven lub pliku jar. Musisz zaimportować adnotację Test testNG. Gdy wszystko będzie gotowe, po prostu kliknij prawym przyciskiem myszy kod programu i kliknij Uruchom jako, a następnie kliknij TestNG… i zobaczysz, że kod rozpocznie wykonywanie za pomocą interfejsu API testNG.

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 {	

    @Test	
    public static void  execution() throws InterruptedException, AWTException {
        WebDriver driver = new FirefoxDriver();	
        driver.manage().window().maximize();	
        driver.get("http://spreadsheetpage.com/index.php/file/C35/P10/"); // sample url	
        Robot robot = new Robot();	
        robot.mouseMove(630, 420); // move mouse point to specific location	
        robot.delay(1500);        // delay is to make code wait for mentioned milliseconds before executing next step	
        robot.mousePress(InputEvent.BUTTON1_DOWN_MASK); // press left click	
        robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK); // release left click	
        robot.delay(1500);	
        robot.keyPress(KeyEvent.VK_DOWN); // press keyboard arrow key to select Save radio button	
        Thread.sleep(2000);	
        robot.keyPress(KeyEvent.VK_ENTER);	
        // press enter key of keyboard to perform above selected action	
    }	
}	

Obejrzyj ten film, aby zobaczyć go w akcji

Korzyści z klasy robota

  1. Klasa robota może symulować zdarzenie klawiatury i myszy
  2. Klasa Robot może pomóc w przesyłaniu/pobieraniu plików podczas korzystania ze sterownika internetowego Selenium
  3. Robot Class można łatwo zintegrować z obecnymi strukturami automatyzacji (słowo kluczowe, oparte na danych lub hybrydowe)

Wady klasy robotów

Struktura robota ma kilka wad wymienionych poniżej:

  1. Zdarzenie słowa kluczowego/myszy będzie działać tylko w bieżącej instancji okna. Załóżmy, że kod wykonuje dowolne zdarzenie klasy robota i podczas wykonywania kodu użytkownik przeniósł się na inny ekran, na tym ekranie nastąpi zdarzenie słowa kluczowego/myszy.
  2. Większość metod, takich jak MouseMove, zależy od rozdzielczości ekranu, więc może istnieć ryzyko, ż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.

Głównym celem Robota jest wsparcie zautomatyzowanych testów Selenium w projekcie Java Platforma

Czytaj więcej Czytaj więcej