Klasa Działania krytyczne w selenie - poradnik Absolute 2021

Zamierzamy omówić i nauczyć się pełnego wykorzystania klasy Actions w Selenium w różnych operacjach internetowych. Klasa Actions w Selenium jest szeroko używana do wykonywania różnych operacji internetowych, takich jak ruch myszy i klawiatury, które są zaawansowanymi działaniami przeglądarki internetowej.

Akcje Mouse

Działania klawiatury

Klasa działań w selenie

Co to jest klasa Actions w Selenium: 

Klasa działań w selenie
Klasa akcji w selenie

Actions Class to klasa z Selenium Bundle Api z pakietu org.openqa.selenium.interakcje do obsługi krytycznych i zaawansowanych interakcji internetowych z użytkownikami za pomocą automatyzacji przeglądarki. Zapewnia użytkownikom uchwyt do wykonywania różnych działań myszy i klawiatury za pomocą różnych metod wymienionych powyżej.  

Klasa działań w selenie
Klasa akcji w selenie

Omówimy tutaj wszystkie interakcje internetowe za pośrednictwem klasy Actions w Selenium, na początek Uczymy się interakcji myszy i przejdziemy do interakcji KeyBoard z klasą akcji w Selenium.

Interakcje myszy - klasa akcji w selenie

Przeciągnij i upuść selen

Przeciągnij i upuść w Selenium można wykonać na trzy różne sposoby z klasą Actions w Selenium: 

Przeciągnij i upuść w Selenium z Action Class w Selenium metodą kompilacji: 

Musimy mieć dwa elementy sieciowe, aby wykonać przeciąganie i upuszczanie w Selenium, takie jak Source WebElement (który ma zostać przeciągnięty) i Destination WebElement (gdzie źródłowy element WebElement ma zostać upuszczony, tj. Docelowy element WebElement). Poniższa metoda jest metodą dostosowaną ( których możesz użyć do zbudowania swoich Framework WebUtils), które wykonują przeciągnij i upuść w selenie, a ta metoda przyjmuje dwa argumenty, jeden to Source WebElement, a drugi to Destination WebElement, jak wspomniano wcześniej: 

public void dragAndDrop (Według źródła, Przez miejsce docelowe) { spróbuj { ElementSieciowy element źródłowy = driver.findElement(źródło); WebElement element docelowy = driver.findElement(miejsce docelowe); Konstruktor akcji = nowe akcje (sterownik); Akcja dragAndDrop = builder.clickAndHold(sourceElement).moveToElement(destinationElement) .release(destinationElement).build(); przeciągnijAndDrop.perform(); BASE_LOGGER.info("Pomyślnie wykonano akcję przeciągnij i upuść"); } catch (Wyjątek e) { String wyjątekData = e.getCause().getMessage(); BASE_LOGGER.error("Napotkano błąd, np.: " + wyjątekData + " podczas wykonywania DragAndDrop "); } }

Aby poznać całą koncepcję przeciągania i upuszczania oraz poznać wszystkie podejścia do wykonywania przeciągania i upuszczania w Selenium, kliknij tutaj.

Kliknij i przytrzymaj w Selenium 

ClickAndHold to kolejna ważna metoda z klasy Actions (z pakietu org.openqa.selenium.interactions) w programie Selenium do
najpierw wykonaj operację kliknięcia lewym przyciskiem myszy na dowolnym elemencie webElement i przytrzymaj go bez zwalniania myszy.

Ta metoda jest głównie używana podczas wykonywania scenariuszy przeciągania i upuszczania, poniżej znajduje się przykładowy obraz kodu: 

Klasa działań w selenie
kliknij i przytrzymaj -Actions w Selenium

MoveToElement w Selenium

MoveToElement to metoda z klasy Actions w Selenium służąca do przenoszenia do innego elementu WebElement (element docelowy), który ta metoda przyjmuje jako jeden odpowiedni argument.

Ta metoda jest głównie używana podczas wykonywania scenariuszy przeciągania i upuszczania, poniżej znajduje się przykładowy obraz kodu: 

Przenieś do elementu
Przenieś do elementu - klasa Actions w Selenium

Kliknij dwukrotnie w Selenium

Aby powielić operację podwójnego kliknięcia myszą, musimy wykonać podwójne kliknięcie za pomocą klasy Actions w Selenium i możemy to zrobić w poniższym podejściu: 

public void doubleClick(By locator) { spróbuj { Element WebElement = driver.findElement(locator); Akcje akcje = nowe Akcje(kierowca); akcje.doubleClick(element).perform(); BASE_LOGGER.info("Wykonano podwójne kliknięcie na elemencie: " + lokalizator); } catch (StaleElementReferenceException e) { BASE_LOGGER.error("Element nie jest dołączony do dokumentu strony " + e.getCause().getMessage()); } catch (NoSuchElementException e) { BASE_LOGGER.error("Element " + lokalizator + " nie został znaleziony w DOM " + e.getCause().getMessage()); } catch (Wyjątek e) { BASE_LOGGER.error("Element " + lokalizator + " nie był klikalny " + e.getCause().getMessage()); } }

Powyższy fragment kodu jest metodą, która w zasadzie przyjmuje argument jako Locator, czyli WebElement, na którym ma zostać wykonane podwójne kliknięcie. 

kliknij kontekstowe lub kliknij prawym przyciskiem myszy Selenium

Aby replikować kliknięcie kontekstu lub kliknięcie prawym przyciskiem myszy za pomocą myszy, musimy wykonać metodę kliknięcia kontekstowego za pomocą klasy Actions w Selenium i możemy to zrobić w poniższym podejściu: 

public void rightClick(By locator) { spróbuj { Element WebElement = driver.findElement(locator); Akcje akcje = nowe Akcje(kierowca); działania.kontekstKliknij(element).wykonaj(); BASE_LOGGER.info("Wykonano kontekst Kliknij element: " + lokalizator); } catch (StaleElementReferenceException e) { BASE_LOGGER.error("Element nie jest dołączony do dokumentu strony " + e.getCause().getMessage()); } catch (NoSuchElementException e) { BASE_LOGGER.error("Element " + lokalizator + " nie został znaleziony w DOM " + e.getCause().getMessage()); } catch (Wyjątek e) { BASE_LOGGER.error("Element " + lokalizator + " nie był klikalny " + e.getCause().getMessage()); } }

Powyższy fragment kodu jest metodą, która w zasadzie przyjmuje argument jako Locator, czyli WebElement, na którym ma zostać wykonane podwójne kliknięcie. 

Pauza w selenie 

Ilekroć chcemy wprowadzić jakiekolwiek opóźnienie czasowe między różnymi akcjami, możemy użyć metody pauzy między operacjami akcji, na przykład, jeśli chcemy mieć kilka sekund opóźnienia między operacją przeciągania i upuszczania, możemy wywołać pauzę ( ) metoda klasy Actions in Selenium w poniższym podejściu: 

public void pauseBetweenActions(Według źródła,Według miejsca docelowego,Int timeUnit) { spróbuj { Element WebElement element źródłowy = driver.findElement(źródło); WebElement element docelowy = driver.findElement(miejsce docelowe); Konstruktor akcji = nowe akcje (sterownik); builder.clickAndHold(sourceElement).moveToElement(destinationElement).pause(timeUnit).release(destinationElement).build().perform(); BASE_LOGGER.info("Pomyślnie wykonano akcję przeciągnij i upuść"); } catch (Wyjątek e) { String wyjątekData = e.getCause().getMessage(); BASE_LOGGER.error("Napotkano błąd, np.: " + wyjątekData + " podczas wykonywania DragAndDrop "); } }

W powyższej metodzie przyjmuje trzy argumenty: jeden źródłowy WebElement, drugi to element docelowy, a ostatni to timeUnit, czyli opóźnienie czasowe, które chcemy wprowadzić za pomocą pause () w Selenium.

Kursor myszy w selenie

Najechanie myszą w operacji Selenium można osiągnąć za pomocą klasy Actions w Selenium, w zasadzie, gdy jesteśmy w centrum uwagi dowolnego elementu webElement, a stamtąd chcemy najechać kursorem myszy na dowolny inny element za pomocą tej operacji najechania myszą i tego elementu WebElement, gdzie chcemy, aby nasz kursor myszy był nazywany docelowym elementem WebElement. 

Poniżej znajduje się fragment kodu dla tego samego: 

public void mouseHover(By targetLocator) { spróbuj { WebElement targetElement = driver.findElement(targetedLocator); Konstruktor akcji = nowe akcje (sterownik); builder.moveToElement(targetedElement).build().perform(); BASE_LOGGER.info("Pomyślnie wykonano najechanie myszą w akcji Selenium"); } catch (Wyjątek e) { String wyjątekData = e.getCause().getMessage(); BASE_LOGGER.error("Napotkano błąd, np. : " + wyjątekData + " podczas najechania myszą w Selenium "); } }

Aby dowiedzieć się o wszystkich Polecenie Selenium webdriver, które możesz znaleźć tutaj .

Akcje klawiatury - klasa akcji w selenie

Co to są akcje klawiatury i gdzie jest to wymagane:

Akcje klawiaturowe oznaczają, że operacje są wykonywane bezpośrednio z klawiatury, na przykład, powiedzmy, że próbujemy wykonać razem Contrl + A lub Control + C lub wykonać przycisk Key up lub Keydown z klawiatury podczas interakcji z WebElements.

Za pomocą klasy Actions w Selenium możemy wykonać kilka interakcji z klawiaturą

sendKeys w Selenium :

Operację sendKeys możemy wykonać za pomocą klasy Actions w Selenium w następujący sposób:

public void sendKeysWithActionClass(By locator) { spróbuj { Element WebElement = driver.findElement(locator); Akcje akcje = nowe Akcje(kierowca); actions.sendKeys("Wprowadzanie danych z klawiatury "); // Wykonaj Akcje Klawiatury, wyrażając Control i c razem actions.sendKeys(Keys.CONTROL); działania.sendKeys("c"); akcje.buduj().wykonaj(); } catch (Wyjątek e) { String wyjątekData = e.getCause().getMessage(); } }

KeyUp w Selenium :

Podobnie możemy wykonać operacje KeyUp z klasą Actions w Selenium w następujący sposób:

    public void keyUpWithActionClass(By locator) { spróbuj { Element WebElement = driver.findElement(locator); Akcje akcje = nowe Akcje(kierowca); actions.sendKeys("Wprowadzanie danych z klawiatury "); // Wykonaj Akcje Klawiatury, naciskając Ctrl i c razem z keyUp actions.keyUp(Keys.CONTROL); działania.sendKeys("c"); akcje.buduj().wykonaj(); } catch (Wyjątek e) { String wyjątekData = e.getCause().getMessage(); } }

KeyDown w Selenium

Operację keyDown możemy wykonać za pomocą ponownie klasy Actions w Selenium w poniższym podejściu:

public void keyDownWithActionClass(By locator) { spróbuj { Element WebElement = driver.findElement(locator); Akcje akcje = nowe Akcje(kierowca); actions.sendKeys("Wprowadzanie danych z klawiatury "); // Wykonaj Akcje Klawiatury, naciskając Ctrl i V razem z keyDown actions.keyDown(Keys.CONTROL); działania.sendKeys("v"); akcje.buduj().wykonaj(); } catch (Wyjątek e) { String wyjątekData = e.getCause().getMessage(); } }

Wnioski: Z tym skończyliśmy tutaj z klasą Actions w Selenium, w nadchodzącym samouczku JavascriptExecutor w Selenium w sposób modułowy, ale wyczerpujący. Uczyć się Wyczerpująco komenda Selenium możesz się tutaj również przygotować Krytyczne pytania do wywiadu z Selenium, które możesz zadać tutaj.

Zostaw komentarz