Akcija Klasa u Selenium
โก Pametni saลพetak
Akcija Klasa u Selenium Obraฤuje napredne dogaฤaje tipkovnice i miลกa kao ลกto su zadrลพavanje pokazivaฤa miลกa, povlaฤenje i ispuลกtanje, klik desnom tipkom miลกa i kombinacije tipki putem API-ja za napredne korisniฤke interakcije. Ovaj vodiฤ objaลกnjava klase Akcije i Akcije, metode tipki i kako povezati viลกe interakcija u jedan niz.

Akcija Klasa u Selenium
Akcija Klasa u Selenium je ugraฤena znaฤajka za rukovanje dogaฤajima tipkovnice i miลกa. Podrลพava operacije kao ลกto su viลกestruki klikovi tipkom Control, povlaฤenje i ispuลกtanje i mnoge druge. Ove se operacije izvode pomoฤu API-ja za napredne korisniฤke interakcije u Selenium WebDriver.
Rukovanje dogaฤajima tipkovnice i miลกa
Obrada posebnih dogaฤaja tipkovnice i miลกa vrลกi se pomoฤu API za napredne korisniฤke interakcije, Sadrลพi Akcije i Akcijski klase koje su potrebne za izvrลกavanje ovih dogaฤaja. Najฤeลกฤe koriลกteni dogaฤaji tipkovnice i miลกa koje pruลพa klasa Actions navedeni su u nastavku.
| naฤin | Description |
|---|---|
| klikni i zadrลพi() | Klikne (bez otpuลกtanja) na trenutnoj lokaciji miลกa. |
| contextClick() | Izvodi kontekstni klik (desni klik) na trenutnoj lokaciji miลกa. |
| dvostruki klik() | Izvodi dvostruki klik na trenutnoj lokaciji miลกa. |
| dragAndDrop(izvor, cilj) | Klikne i drลพi miลก na izvornom elementu, pomiฤe se na ciljni element, a zatim otpuลกta miลก. Parametri: izvor (element na koji treba pritisnuti), cilj (element na koji treba otpustiti). |
| dragAndDropBy(izvor, x-pomak, y-pomak) | Klikne i drลพi na izvornom elementu, pomiฤe se za zadani pomak, a zatim otpuลกta. Parametri: izvor, xPomak (horizontalno), yPomak (vertikalno). |
| tipkadolje(tipka_modifikatora) | Pritiลกฤe modifikatorsku tipku bez otpuลกtanja, pa kasnije interakcije pretpostavljaju da ostaje pritisnuta. Parametar: modifikatorska tipka (Keys.ALT, Keys.SHIFT ili Keys.CONTROL). |
| keyUp(modifikatorska_tipka) | Otpuลกta modifikatorsku tipku. Parametar: modifikatorska tipka (Keys.ALT, Keys.SHIFT ili Keys.CONTROL). |
| moveByOffset(x-pomak, y-pomak) | Pomiฤe miลก s njegove trenutne pozicije (ili 0,0) za zadani pomak. Negativni x pomiฤe se lijevo; negativni y pomiฤe se gore. |
| pomakni na element (na element) | Pomiฤe miลก na sredinu elementa. Parametar: element na koji se pomiฤe. |
| oslobodi() | Otpuลกta pritisnutu lijevu tipku miลกa na trenutnoj lokaciji. |
| sendKeys(onElement, charsequence) | ล alje niz pritisaka tipki elementu. Parametri: onElement (obiฤno tekstualno polje), charsequence (pritisci tipki koje treba poslati). |
U sljedeฤem primjeru koristimo moveToElement() metoda zadrลพavanja pokazivaฤa iznad jednog od Mercury Redovi tablice Tours.
ฤelija prikazana gore je dio element. Kada se ne zadrลพi miลก iznad njega, njegova boja je #FFC455 (naranฤasta). Nakon zadrลพavanja miลกa, boja ฤelije postaje prozirna i odgovara pozadini okolne tablice.
Korak 1) Uvezite Akcije i Akcijski klase.
Korak 2) Instancirajte novi objekt Actions.
Korak 3) Instancirajte Action koristeฤi objekt Actions iz 2. koraka.
Ovdje koristimo moveToElement() metoda zadrลพavanja pokazivaฤa iznad poveznice "Poฤetna". build() Metoda se uvijek poziva zadnja kako bi se sve navedene akcije sastavile u jedan korak.
Korak 4) Koristite perform() metoda za izvrลกavanje objekta Action dizajniranog u koraku 3.
Ispod je cijeli WebDriver kod koji provjerava boju pozadine element prije i poslije prelaska miลกem preko njega.
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();
}
}
Donji rezultat pokazuje da je boja pozadine postala prozirna nakon prelaska miลกem preko nje.
Izgradnja niza viลกestrukih radnji
Moลพete izgraditi niz akcija pomoฤu klasa Action i Actions. Ne zaboravite zatvoriti niz s build() metoda. Razmotrite primjer koda u nastavku.
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();
}





