Aksiyon Sınıfı Selenium
⚡ Akıllı Özet
Aksiyon Sınıfı Selenium Gelişmiş Kullanıcı Etkileşimleri API'si aracılığıyla fareyle üzerine gelme, sürükle bırak, sağ tıklama ve tuş kombinasyonları gibi gelişmiş klavye ve fare olaylarını işler. Bu eğitim, Eylemler ve Eylem sınıflarını, temel yöntemleri ve birden fazla etkileşimin tek bir dizi halinde nasıl zincirleneceğini açıklar.

Aksiyon Sınıfı Selenium
Aksiyon Sınıfı Selenium Klavye ve fare olaylarını işlemek için yerleşik bir özelliktir. Kontrol tuşuyla birden fazla tıklama, sürükle-bırak ve daha birçok işlemi destekler. Bu işlemler, Gelişmiş Kullanıcı Etkileşimleri API'si kullanılarak gerçekleştirilir. Selenium WebDriver.
Klavye ve Fare Olaylarını Yönetme
Özel klavye ve fare olaylarının işlenmesi şu şekilde yapılır: Gelişmiş Kullanıcı Etkileşimleri API'sı. İçerir İşlemler hem de Action Bu olayları gerçekleştirmek için gereken sınıflar şunlardır: Actions sınıfı tarafından sağlanan en yaygın kullanılan klavye ve fare olayları aşağıda listelenmiştir.
| Yöntem | Açıklama |
|---|---|
| tıklayınVeHold() | Geçerli fare konumundaki tıklamalar (bırakmadan). |
| bağlam Tıklaması() | Farenin bulunduğu konumda sağ tıklama (bağlantı tuşuyla tıklama) işlemi gerçekleştirir. |
| çiftTıklama() | Mevcut fare konumunda çift tıklama gerçekleştirir. |
| dragAndDrop(kaynak, hedef) | Kaynak öğeye tıklayıp basılı tutar, hedef öğeye geçer ve ardından fareyi bırakır. Parametreler: kaynak (üzerine basılacak öğe), hedef (bırakılacak öğe). |
| dragAndDropBy(kaynak, x uzaklığı, y uzaklığı) | Kaynak öğeye tıklayıp basılı tutar, belirli bir mesafede hareket ettirir ve ardından bırakır. Parametreler: kaynak, xOffset (yatay), yOffset (dikey). |
| keyDown(modifier_key) | Bir değiştirici tuşa basılı tutar ve bırakmaz; böylece sonraki etkileşimler tuşun basılı kaldığını varsayar. Parametre: bir değiştirici tuş (Keys.ALT, Keys.SHIFT veya Keys.CONTROL). |
| keyUp(modifier_key) | Bir değiştirici tuşu bırakır. Parametre: bir değiştirici tuş (Keys.ALT, Keys.SHIFT veya Keys.CONTROL). |
| moveByOffset(x-offset, y-offset) | Fareyi mevcut konumundan (veya 0,0 noktasından) verilen mesafe kadar hareket ettirir. Negatif x sola, negatif y yukarı hareket ettirir. |
| moveToElement(toElement) | Fareyi öğenin ortasına taşır. Parametre: Taşınacak öğe. |
| serbest bırakmak() | Basılı olan sol fare düğmesini mevcut konumda bırakır. |
| sendKeys(onElement, karakter dizisi) | Bir öğeye bir dizi tuş vuruşu gönderir. Parametreler: onElement (genellikle bir metin alanı), charsequence (gönderilecek tuş vuruşları). |
Aşağıdaki örnekte, moveToElement() fareyi birinin üzerine getirme yöntemi Mercury Tur tablosu satırları.
Yukarıda gösterilen hücre, bir hücrenin parçasıdır. Bu, bir elementtir. Üzerine gelinmediğinde rengi #FFC455 (turuncu)'dur. Üzerine gelindiğinde hücrenin rengi şeffaflaşır ve çevresindeki tablonun arka planıyla eşleşir.
) 1 Adım içe aktar İşlemler hem de Action sınıflar.
) 2 Adım Yeni bir Actions nesnesi oluşturun.
) 3 Adım 2. Adımdaki Actions nesnesini kullanarak bir Action örneği oluşturun.
Burada kullandığımız moveToElement() “Ana Sayfa” bağlantısının üzerine fareyle gelindiğinde uygulanacak yöntem. build() Bu yöntem her zaman en son çağrılır, böylece listelenen tüm işlemler tek bir adımda derlenir.
) 4 Adım Kullan perform() 3. adımda tasarlanan Action nesnesini yürütme yöntemi.
Aşağıda, arka plan rengini kontrol eden WebDriver kodunun tamamı yer almaktadır. Fareyle üzerine gelmeden önceki ve sonraki öğe.
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();
}
}
Aşağıdaki çıktıda, fareyle üzerine gelindiğinde arka plan renginin şeffaf hale geldiği gösterilmektedir.
Bir dizi Çoklu Eylem Oluşturma
Action ve Actions sınıflarını kullanarak bir dizi eylem oluşturabilirsiniz. Seriyi kapatmayı unutmayın. build() Yöntem. Aşağıdaki örnek koda göz atın.
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();
}





