Klasa akcji w Selenium
โก Inteligentne podsumowanie
Klasa akcji w Selenium Obsลuguje zaawansowane zdarzenia klawiatury i myszy, takie jak najechanie kursorem, przeciฤ ganie i upuszczanie, klikniฤcie prawym przyciskiem myszy i kombinacje klawiszy, za poลrednictwem interfejsu API zaawansowanych interakcji uลผytkownika (Advanced User Interactions). W tym samouczku wyjaลniono klasy Actions i Actions, metody klawiszowe oraz sposรณb ลฤ czenia wielu interakcji w jednฤ sekwencjฤ.
Klasa akcji w Selenium
Klasa akcji w Selenium to wbudowana funkcja do obsลugi zdarzeล klawiatury i myszy. Obsลuguje operacje takie jak wielokrotne klikniฤcia klawiszem Control, przeciฤ ganie i upuszczanie i wiele innych. Operacje te sฤ wykonywane za pomocฤ interfejsu API zaawansowanych interakcji uลผytkownika. Selenium Sterownik sieciowy.
Obsลuga zdarzeล klawiatury i myszy
Obsลuga specjalnych zdarzeล klawiatury i myszy odbywa siฤ za pomocฤ Zaawansowane API interakcji uลผytkownika. Zawiera Akcje oraz Dziaลania Klasy niezbฤdne do wykonania tych zdarzeล. Poniลผej wymieniono najczฤลciej uลผywane zdarzenia klawiatury i myszy udostฤpniane 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 (prawym przyciskiem myszy) w bieลผฤ cym poลoลผeniu myszy. |
| podwรณjne klikniฤcie() | Wykonuje dwukrotne klikniฤcie w bieลผฤ cym poลoลผeniu myszy. |
| dragAndDrop(ลบrรณdลo, cel) | Kliknij i przytrzymaj element ลบrรณdลowy, przesuล do elementu docelowego, a nastฤpnie zwolnij przycisk myszy. Parametry: ลบrรณdลo (element, ktรณry chcesz nacisnฤ ฤ), cel (element, ktรณry chcesz zwolniฤ). |
| dragAndDropBy(ลบrรณdลo, przesuniฤcie x, przesuniฤcie y) | Kliknij i przytrzymaj element ลบrรณdลowy, przesuล go o zadane przesuniฤcie, a nastฤpnie zwolnij. Parametry: ลบrรณdลo, przesuniฤcie x (poziomo), przesuniฤcie y (pionowo). |
| keyDown(klucz_modyfikatora) | Naciska klawisz modyfikujฤ cy bez puszczania go, wiฤc pรณลบniejsze interakcje zakลadajฤ , ลผe klawisz pozostaje wciลniฤty. Parametr: klawisz modyfikujฤ cy (Klawisze.ALT, Klawisze.SHIFT lub Klawisze.CONTROL). |
| keyUp(klucz_modyfikatora) | Zwalnia klawisz modyfikujฤ cy. Parametr: klawisz modyfikujฤ cy (Klawisze.ALT, Klawisze.SHIFT lub Klawisze.CONTROL). |
| moveByOffset(przesuniฤcie x, przesuniฤcie y) | Przesuwa mysz od bieลผฤ cej pozycji (lub 0,0) o zadany przesuniฤcie. Ujemny x przesuwa mysz w lewo; ujemny y przesuwa mysz w gรณrฤ. |
| przenieล do elementu (do elementu) | Przesuwa mysz do ลrodka elementu. Parametr: element, do ktรณrego ma zostaฤ przeniesiony. |
| uwolnienie() | Zwalnia wciลniฤty lewy przycisk myszy w bieลผฤ cej lokalizacji. |
| sendKeys(onElement, sekwencja znakรณw) | Wysyลa seriฤ naciลniฤฤ klawiszy do elementu. Parametry: onElement (zwykle pole tekstowe), sekwencja znakรณw (liczba naciลniฤฤ klawiszy do wysลania). |
W poniลผszym przykลadzie uลผywamy moveToElement() metoda najechania kursorem na jeden z Mercury Wiersze tabeli wycieczek.
Komรณrka pokazana powyลผej jest czฤลciฤ Element. Gdy nie jest najechany kursorem, jego kolor to #FFC455 (pomaraลczowy). Po najechaniu kursorem kolor komรณrki staje siฤ przezroczysty i pasuje do tลa otaczajฤ cej tabeli.
Krok 1) Importuj Akcje oraz Dziaลania Klasy.
Krok 2) Utwรณrz instancjฤ nowego obiektu Actions.
Krok 3) Utwรณrz wystฤ pienie akcji, uลผywajฤ c obiektu Akcje z kroku 2.
Tutaj uลผywamy moveToElement() metodฤ najechania kursorem na link โStrona gลรณwnaโ. build() Metoda jest zawsze wywoลywana jako ostatnia, dziฤki czemu wszystkie wymienione akcje sฤ
kompilowane w pojedynczym kroku.
Krok 4) Uลผyj perform() metoda wykonania obiektu akcji zaprojektowanego w kroku 3.
Poniลผej znajduje siฤ peลny kod WebDrivera, ktรณry sprawdza kolor tลa 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 = "https://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 pokazuje, ลผe kolor tลa staล siฤ przezroczysty po najechaniu na niego kursorem myszy.
Budowanie serii wielu dziaลaล
Moลผesz zbudowaฤ seriฤ akcji, uลผywajฤ
c klas Action i Actions. Pamiฤtaj, aby zamknฤ
ฤ seriฤ za pomocฤ
build() metoda. Rozwaลผ przykลadowy kod poniลผej.
public static void main(String[] args) {
String baseUrl = "https://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();
}






