Kliknięcie myszą & Wydarzenie klawiatury: klasa akcji w Selenium Webdriver

Spisie treści:

Anonim

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 . Jeśli nie jest najechany kursorem, jego kolor to # FFC455 (pomarańczowy). Po najechaniu kursorem kolor komórki staje się przezroczysty. Staje się tym samym kolorem, co niebieskie tło całego pomarańczowego stołu.

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 przed i po najechaniu myszą.

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.