W tym samouczku nauczymy się obsługi zdarzenia klawiatury i myszy w Selenium Webdriver
Klasa działania w selenie
Klasa akcji w Selenium to wbudowana funkcja zapewniana przez selen do obsługi zdarzeń związanych z klawiaturą i myszą. Obejmuje różne operacje, takie jak klikanie wielu zdarzeń za pomocą klawisza sterującego, przeciąganie i upuszczanie zdarzeń i wiele innych. Te operacje z klasy akcji są wykonywane przy użyciu zaawansowanego interfejsu API interakcji użytkownika w Selenium Webdriver.
Obsługa zdarzeń związanych z klawiaturą i myszą
Obsługa specjalnych zdarzeń związanych z klawiaturą i myszą odbywa się za pomocą interfejsu API Advanced User Interactions . Zawiera akcje i klasy Action , które są potrzebne podczas wykonywania tych zdarzeń. Poniżej przedstawiono najczęściej używane zdarzenia klawiatury i myszy udostępniane przez klasę Actions.
metoda | Opis |
---|---|
Kliknij i przytrzymaj() | Kliknięcia (bez zwalniania) w bieżącym położeniu myszy. |
contextClick () | Wykonuje kliknięcie kontekstowe w bieżącym położeniu myszy. (Akcja prawego przycisku 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 miejscu elementu źródłowego, przesuwa się do lokalizacji elementu docelowego, a następnie zwalnia przycisk myszy. Parametry: source- element do emulacji przycisku at .target- element, do którego ma zostać przeniesiony i zwolniony przycisk myszy. |
dragAndDropBy (źródło, przesunięcie x, przesunięcie y) | Wykonuje kliknięcie i przytrzymanie w miejscu elementu źródłowego, przesuwa się o zadane przesunięcie, a następnie zwalnia przycisk myszy. Parametry : source- element do emulacji przycisku w dół. XOffset - przesunięcie ruchu w poziomie. YOffset - przesunięcie ruchu w pionie. |
keyDown (modifier_key) | Wykonuje naciśnięcie klawisza modyfikującego. Nie zwalnia klawisza modyfikującego - kolejne interakcje mogą zakładać, że jest trzymany wciśnięty. Parametry : modifier_key - dowolny z klawiszy modyfikujących (Keys.ALT, Keys.SHIFT lub Keys.CONTROL) |
keyUp (modyfikator _key) | Wykonuje zwolnienie klucza. Parametry : modifier_key - dowolny z klawiszy modyfikujących (Keys.ALT, Keys.SHIFT lub Keys.CONTROL) |
moveByOffset (przesunięcie x, przesunięcie y) | Przesuwa kursor myszy z jego aktualnej pozycji (lub 0,0) o zadane przesunięcie. Parametry : x-offset- offset poziomy. Wartość ujemna oznacza przesunięcie myszy w lewo. Y-offset- pionowe przesunięcie. Wartość ujemna oznacza przesunięcie myszy w dół. |
moveToElement (toElement) | Przesuwa mysz do środka elementu. Parametry : toElement- element, do którego należy przejść. |
wydanie() | Zwalnia wciśnięty lewy przycisk myszy w bieżącym położeniu myszy |
sendKeys (onElement, charsequence) | Wysyła serię naciśnięć klawiszy do elementu. Parametry : onElement - element, który będzie otrzymywał naciśnięcia klawiszy, zwykle pole tekstowe. |
W poniższym przykładzie użyjemy metody moveToElement () do najechania kursorem myszy na jeden wiersz tabeli Mercury Tours. Zobacz poniższy przykład.
Komórka pokazana powyżej jest częścią elementu
Krok 1: Zaimportuj klasy Actions i Action .
Krok 2: Utwórz wystąpienie nowego obiektu akcji.
Krok 3: Utwórz wystąpienie akcji przy użyciu obiektu Actions w kroku 2.
W tym przypadku użyjemy metody moveToElement (), ponieważ po prostu najedziemy kursorem myszy na link „Home”. Metoda build () jest zawsze ostatnią używaną 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.
Poniżej znajduje się cały kod WebDriver do sprawdzania koloru tła elementu
pakiet newproject;import org.openqa.selenium. *;import org.openqa.selenium.firefox.FirefoxDriver;import org.openqa.selenium.interactions.Action;import org.openqa.selenium.interactions.Actions;klasa publiczna PG7 {public static void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/newtours/";System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");Sterownik WebDriver = nowy FirefoxDriver ();driver.get (baseUrl);WebElement link_Home = driver.findElement (By.linkText ("Strona główna"));WebElement td_Home = kierowca.findElement (wg.xpath ("// html / body / div"+ „/ table / tbody / tr / td”+ „/ table / tbody / tr / td”+ „/ table / tbody / tr / td”+ "/ table / tbody / tr"));Kreator akcji = nowy Akcje (sterownik);Akcja mouseOverHome = builder.moveToElement (link_Home).budować();String bgColor = td_Home.getCssValue ("kolor tła");System.out.println ("Przed najechaniem: + bgColor);mouseOverHome.perform ();bgColor = td_Home.getCssValue ("kolor tła");System.out.println ("Po najechaniu kursorem: + bgColor);driver.close ();}}
Poniższe dane wyjściowe jasno wskazują, że kolor tła stał się przezroczysty po najechaniu myszą.
Tworzenie serii wielu działań
Możesz zbudować serię akcji za pomocą klas Action i Actions . Pamiętaj tylko, aby zamknąć serię metodą build (). Rozważ przykładowy kod poniżej.
public static void main (String [] args) {String baseUrl = "http://www.facebook.com/";Sterownik WebDriver = nowy FirefoxDriver ();driver.get (baseUrl);WebElement txtUsername = driver.findElement (By.id ("email"));Kreator akcji = nowy Akcje (sterownik);Action seriesOfActions = builder.moveToElement (txtUsername).Kliknij().keyDown (txtUsername, Keys.SHIFT).sendKeys (txtUsername, "witaj").keyUp (txtUsername, Keys.SHIFT).doubleClick (txtUsername).contextClick ().budować();seriesOfActions.perform ();}
Podsumowanie
- Obsługa specjalnych zdarzeń klawiatury i myszy odbywa się za pomocą interfejsu API AdvancedUserInteractions.
- Często używanymi zdarzeniami słów kluczowych i myszy są doubleClick (), keyUp, dragAndDropBy, contextClick i sendKeys.