Klasa akcji w Selenium – Zdarzenia związane z kliknięciem myszą i klawiaturą

W tym samouczku nauczymy się obsługiwać zdarzenia klawiatury i myszy w Selenium Sterownik internetowy

Klasa akcji w Selenium

Klasa akcji w Selenium jest wbudowaną funkcją udostępnianą przez selen do obsługi zdarzeń klawiatury i myszy. Obejmuje ona różne operacje, takie jak klikanie wielu zdarzeń za pomocą klawisza Control, zdarzenia przeciągania i upuszczania i wiele innych. Te operacje z klasy akcji są wykonywane przy użyciu zaawansowanego interfejsu API interakcji użytkownika w Selenium Sterownik internetowy.

Obsługa zdarzeń klawiatury i myszy

Obsługa specjalnych zdarzeń klawiatury i myszy odbywa się za pomocą metody Zaawansowane API interakcji użytkownika. Zawiera Akcje i Działania klasy, które są potrzebne podczas wykonywania tych zdarzeń. Poniżej przedstawiono najczęściej używane zdarzenia klawiatury i myszy dostarczane przez klasę Actions.

Metoda wykonania Opis
Kliknij i przytrzymaj() Kliknięcia (bez zwalniania) w bieżącym położeniu myszy.
kontekstKliknięcie() Wykonuje kliknięcie kontekstowe w bieżącej lokalizacji myszy. (Kliknięcie prawym przyciskiem myszy)
podwójne kliknięcie() Wykonuje dwukrotne kliknięcie w bieżącym położeniu myszy.
dragAndDrop(źródło, cel) Wykonuje kliknięcie i przytrzymanie w lokalizacji elementu źródłowego, przechodzi do lokalizacji elementu docelowego, a następnie zwalnia mysz.

Parametry:

element źródłowy do emulowania przycisku.

cel – element, do którego można się przenieść i zwolnić mysz.

dragAndDropBy(źródło, przesunięcie x, przesunięcie y) Wykonuje kliknięcie i przytrzymanie w lokalizacji elementu źródłowego, przesuwa się o zadane przesunięcie, a następnie zwalnia mysz.

parametry:

element źródłowy do emulowania przycisku.

xOffset - przesunięcie ruchu poziomego.

yOffset — przesunięcie w pionie.

keyDown(klucz_modyfikatora) Wykonuje naciśnięcie klawisza modyfikującego. Nie zwalnia klawisza modyfikującego – w kolejnych interakcjach można zakładać, że jest on wciśnięty.

parametry:

modyfikator_klucz – dowolny z klawiszy modyfikujących (Klawisze.ALT, Klawisze.SHIFT lub Klawisze.CONTROL)

keyUp(modyfikator _key) Wykonuje zwolnienie klawisza.

parametry:

modyfikator_klucz – dowolny z klawiszy modyfikujących (Klawisze.ALT, Klawisze.SHIFT lub Klawisze.CONTROL)

moveByOffset(przesunięcie x, przesunięcie y) Przesuwa mysz z jej aktualnej pozycji (lub 0,0) o podane przesunięcie.

parametry:

x-offset — przesunięcie poziome. Wartość ujemna oznacza przesunięcie myszy w lewo.

y-offset – przesunięcie pionowe. Wartość ujemna oznacza przesunięcie myszy w dół.

przenieś do elementu (do elementu) Przesuwa mysz na środek elementu.

parametry:

toElement – ​​element, do którego należy się przenieść.

uwolnienie() Zwalnia wciśnięty lewy przycisk myszy w bieżącym położeniu myszy
sendKeys(onElement, sekwencja znaków) Wysyła serię naciśnięć klawiszy na element.

parametry:

onElement – ​​element, który będzie odbierał naciśnięcia klawiszy, zwykle pole tekstowe

charsequence – dowolna wartość ciągu reprezentująca sekwencję naciśnięć klawiszy, która ma zostać wysłana

W poniższym przykładzie użyjemy metody moveToElement(), aby najechać kursorem na jeden element. Mercury Wiersze tabeli Tours. Zobacz przykład poniżej.

Obsługa zdarzeń klawiatury i myszy

Komórka pokazana powyżej jest częścią a element. Jeśli nie jest najechany kursorem, jego kolor to #FFC455 (pomarańczowy). Po najechaniu kolor komórki staje się przezroczysty. Przybiera ten sam kolor, co niebieskie tło całego pomarańczowego stołu.

Krok 1) Importuj Akcje i Działania Klasy.

Obsługa zdarzeń klawiatury i myszy

Krok 2) Utwórz instancję nowego obiektu Actions.

Obsługa zdarzeń klawiatury i myszy

Krok 3) Utwórz instancję akcji, korzystając z obiektu Actions w kroku 2.

Obsługa zdarzeń klawiatury i myszy

W tym przypadku użyjemy metody moveToElement(), ponieważ po prostu najedziemy myszką na link „Strona główna”. Metoda build() jest zawsze ostateczną metodą, dzięki czemu wszystkie wymienione akcje zostaną skompilowane w jednym kroku.

Krok 4) Użyj metody perform() podczas wykonywania obiektu Action, który zaprojektowaliśmy w kroku 3.

Obsługa zdarzeń klawiatury i myszy

Poniżej znajduje się cały kod WebDrivera służący do sprawdzania koloru tła pliku element przed i po najechaniu myszką.

package newproject;

import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Action;
import org.openqa.selenium.interactions.Actions;

public class PG7 {
    
    public static void main(String[] args) {
        String baseUrl = "http://demo.guru99.com/test/newtours/";
        System.setProperty("webdriver.gecko.driver","C:\\geckodriver.exe");
                WebDriver driver = new FirefoxDriver();

                driver.get(baseUrl);           
                WebElement link_Home = driver.findElement(By.linkText("Home"));
                WebElement td_Home = driver
                        .findElement(By
                        .xpath("//html/body/div"
                        + "/table/tbody/tr/td"
                        + "/table/tbody/tr/td"
                        + "/table/tbody/tr/td"
                        + "/table/tbody/tr"));    
                 
                Actions builder = new Actions(driver);
                Action mouseOverHome = builder
                        .moveToElement(link_Home)
                        .build();
                 
                String bgColor = td_Home.getCssValue("background-color");
                System.out.println("Before hover: " + bgColor);        
                mouseOverHome.perform();        
                bgColor = td_Home.getCssValue("background-color");
                System.out.println("After hover: " + bgColor);
                driver.close();
        }
}

Poniższy wynik wyraźnie stwierdza, że ​​kolor tła stał się przezroczysty po najechaniu myszką.

Klasa akcji w Selenium

Budowanie serii wielu działań

Za pomocą klas Action i Actions można zbudować serię akcji. Pamiętaj tylko o zamknięciu serii metodą build(). Rozważ poniższy przykładowy kod.

Budowanie serii wielu działań

public static void main(String[] args) {
String baseUrl = "http://www.facebook.com/"; 
WebDriver driver = new FirefoxDriver();

driver.get(baseUrl);
WebElement txtUsername = driver.findElement(By.id("email"));

Actions builder = new Actions(driver);
Action seriesOfActions = builder
	.moveToElement(txtUsername)
	.click()
	.keyDown(txtUsername, Keys.SHIFT)
	.sendKeys(txtUsername, "hello")
	.keyUp(txtUsername, Keys.SHIFT)
	.doubleClick(txtUsername)
	.contextClick()
	.build();
	
seriesOfActions.perform() ;

}

Budowanie serii wielu działań

Podsumowanie

  • Obsługa specjalnych zdarzeń klawiatury i myszy odbywa się za pomocą interfejsu API AdvancedUserInteractions.
  • Często używanymi słowami kluczowymi i zdarzeniami myszy są doubleClick(), keyUp, dragAndDropBy, contextClick i sendKeys.