Aksiyon Sınıfı Selenium

Bu derste Klavye ve Fare Olayını işlemeyi öğreneceğiz. Selenium Web sürücüsü

Aksiyon Sınıfı Selenium

Aksiyon Sınıfı Selenium selenyum tarafından klavye ve fare olaylarını işlemek için sağlanan yerleşik bir özelliktir. Kontrol tuşuyla birden fazla olay tıklaması, sürükle ve bırak olayları ve daha fazlası gibi çeşitli işlemleri içerir. Action sınıfından gelen bu işlemler, gelişmiş kullanıcı etkileşimi API'si kullanılarak gerçekleştirilir. Selenium Web sürücüsü.

Klavye ve Fare Olaylarını Yönetme

Özel klavye ve fare olaylarının yönetimi, Gelişmiş Kullanıcı Etkileşimleri API'sı. İçerir İşlemler ve Action Bu olayları yürütürken ihtiyaç duyulan sınıflar. Aşağıda Actions sınıfı tarafından sağlanan en yaygın kullanılan klavye ve fare olayları yer almaktadır.

Yöntem Tanım
tıklayınVeHold() Geçerli fare konumundaki tıklamalar (bırakmadan).
bağlam Tıklaması() Geçerli fare konumunda bağlam tıklaması gerçekleştirir. (Fareye Sağ Tıklama Eylemi)
çiftTıklama() Mevcut fare konumunda çift tıklama gerçekleştirir.
dragAndDrop(kaynak, hedef) Kaynak öğenin konumunda tıklayıp basılı tutar, hedef öğenin konumuna hareket eder ve ardından fareyi bırakır.

Parametreler:

kaynak- düğmeyi taklit edecek öğe.

hedef- hareket edilecek ve farenin bırakılacağı öğe.

dragAndDropBy(kaynak, x uzaklığı, y uzaklığı) Kaynak öğenin konumunda tıklayıp basılı tutar, belirli bir uzaklığa göre hareket eder ve ardından fareyi bırakır.

Parametreler:

kaynak- düğmeyi taklit edecek öğe.

xOffset- yatay hareket ofseti.

yOfset- dikey hareket ofseti.

keyDown(modifier_key) Değiştirici tuşa basmayı gerçekleştirir. Değiştirici tuşu serbest bırakmaz; sonraki etkileşimlerde bu tuşun basılı tutulduğu varsayılabilir.

Parametreler:

değiştirici_anahtar – değiştirici tuşlardan herhangi biri (Keys.ALT, Keys.SHIFT veya Keys.CONTROL)

keyUp(değiştirici _key) Bir anahtar serbest bırakma işlemi gerçekleştirir.

Parametreler:

değiştirici_anahtar – değiştirici tuşlardan herhangi biri (Keys.ALT, Keys.SHIFT veya Keys.CONTROL)

moveByOffset(x-offset, y-offset) Fareyi verilen konum kadar geçerli konumundan (veya 0,0) hareket ettirir.

Parametreler:

x-offset- yatay ofset. Negatif bir değer, fareyi sola hareket ettirmek anlamına gelir.

y-offset-dikey ofset. Negatif bir değer, fareyi aşağı doğru hareket ettirmek anlamına gelir.

moveToElement(toElement) Fareyi öğenin ortasına hareket ettirir.

Parametreler:

toElement- taşınacak öğe.

serbest bırakmak() Geçerli fare konumunda basılan sol fare düğmesini serbest bırakır
sendKeys(onElement, karakter dizisi) Öğeye bir dizi tuş vuruşu gönderir.

Parametreler:

onElement – ​​tuş vuruşlarını alacak öğe, genellikle bir metin alanı

karakter dizisi – gönderilecek tuş vuruşlarının sırasını temsil eden herhangi bir dize değeri

Aşağıdaki örnekte, fareyi bir öğenin üzerine getirmek için moveToElement() yöntemini kullanacağız. Mercury Tours'un masa sıraları. Aşağıdaki örneğe bakın.

Klavye ve Fare Olaylarını Yönetme

Yukarıda gösterilen hücre bir hücrenin bir kısmıdır. eleman. Üzerine gelinmezse rengi #FFC455 (turuncu) olur. Fareyle üzerine gelindiğinde hücrenin rengi şeffaf hale gelir. Tüm turuncu masanın mavi arka planıyla aynı renge dönüşür.

) 1 Adım içe aktar İşlemler ve Action sınıflar.

Klavye ve Fare Olaylarını Yönetme

) 2 Adım Yeni bir Actions nesnesi oluşturun.

Klavye ve Fare Olaylarını Yönetme

) 3 Adım 2. adımdaki Actions nesnesini kullanarak bir Action başlatın.

Klavye ve Fare Olaylarını Yönetme

Bu durumda, moveToElement() yöntemini kullanacağız çünkü fareyi sadece “Ana Sayfa” bağlantısının üzerine getireceğiz. build() yöntemi her zaman kullanılan son yöntemdir, böylece listelenen tüm eylemler tek bir adımda derlenir.

) 4 Adım 3. Adımda tasarladığımız Action nesnesini çalıştırırken Perform() yöntemini kullanın.

Klavye ve Fare Olaylarını Yönetme

Aşağıda arka plan rengini kontrol etmek için WebDriver kodunun tamamı bulunmaktadır. Fareyle üzerine gelinmeden önce ve sonra öğ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ı, fareyle üzerine gelindiğinde arka plan renginin şeffaf hale geldiğini açıkça belirtir.

Aksiyon Sınıfı Selenium

Bir dizi Çoklu Eylem Oluşturma

Action ve Actions sınıflarını kullanarak bir dizi eylem oluşturabilirsiniz.. Seriyi build() yöntemiyle kapatmayı unutmayın. Aşağıdaki örnek kodu göz önünde bulundurun.

Çoklu Eylemlerden Bir Dizi Oluşturmak

public static void main(String[] args) {
String baseUrl = "http://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() ;

}

Çoklu Eylemlerden Bir Dizi Oluşturmak

ÖZET

  • Özel klavye ve fare olaylarının yönetimi, AdvancedUserInteractions API kullanılarak gerçekleştirilir.
  • Sıkça kullanılan Anahtar Kelime ve Fare Olayları doubleClick(), keyUp, dragAndDropBy, contextClick ve sendKeys'dir.