Fare Tıklaması & Klavye Etkinliği: Selenium Webdriver'da Eylem Sınıfı

İçindekiler:

Anonim

Bu eğitimde, Selenium Webdriver'da Klavye ve Fare Olayını nasıl işlemeyi öğreneceğiz

Selenyumda Eylem Sınıfı

Selenium'daki Action Class, klavye ve fare olaylarını işlemek için selenyum tarafından sağlanan yerleşik bir özelliktir. Kontrol tuşuyla tıklama, sürükle ve bırak olayları ve daha pek çok olay gibi çeşitli işlemleri içerir. Eylem sınıfından bu işlemler, Selenium Webdriver'daki gelişmiş kullanıcı etkileşimi API'si kullanılarak gerçekleştirilir.

Klavye ve Fare Olaylarını Yönetme

Özel klavye ve fare olaylarının işlenmesi, Gelişmiş Kullanıcı Etkileşimleri API'sı kullanılarak yapılır . Bu olayları yürütürken gerekli olan Eylemleri ve Eylem sınıflarını içerir. Aşağıdakiler, Actions sınıfı tarafından sağlanan en yaygın kullanılan klavye ve fare olaylarıdır.

Yöntem Açıklama
clickAndHold () Mevcut fare konumunda tıklamalar (bırakmadan).
contextClick () Mevcut fare konumunda bağlam tıklama gerçekleştirir. (Sağ Tıklama Fare Eylemi)
çift ​​tıklama() Mevcut fare konumunda çift tıklama gerçekleştirir.
dragAndDrop (kaynak, hedef) Kaynak öğenin konumunda tıklama ve basılı tutma gerçekleştirir, hedef öğenin konumuna hareket eder ve ardından fareyi serbest bırakır. Parametreler: fareyi taşımak ve fareyi bırakmak için.target öğesindeki düğmeyi taklit edecek kaynak öğesi.
dragAndDropBy (kaynak, x uzaklığı, y uzaklığı) Kaynak öğenin konumunda tıklama ve basılı tutma gerçekleştirir, belirli bir uzaklık kadar hareket eder ve ardından fareyi serbest bırakır. Parametreler : düğme aşağı benzetilecek kaynak eleman. XOffset- yatay hareket ofseti. YOffset- dikey hareket ofseti.
keyDown (değiştirici_key) Değiştirici bir tuşa basma işlemi gerçekleştirir. Değiştirici tuşu serbest bırakmaz - sonraki etkileşimler basılı tutulduğunu varsayabilir. Parametreler : modifier_key - değiştirici tuşlardan herhangi biri (Keys.ALT, Keys.SHIFT veya Keys.CONTROL)
keyUp (değiştirici _key) Bir tuş bırakma işlemi gerçekleştirir. Parametreler : modifier_key - değiştirici tuşlardan herhangi biri (Keys.ALT, Keys.SHIFT veya Keys.CONTROL)
moveByOffset (x-ofset, y-ofset) Verilen ofset ile fareyi mevcut konumundan (veya 0,0) hareket ettirir. Parametreler : x-ofset-yatay ofset. Negatif bir değer, fareyi sola hareket ettirmek anlamına gelir. Y-ofset-dikey uzaklık. Negatif bir değer, fareyi aşağı hareket ettirmek anlamına gelir.
moveToElement (toElement) Fareyi öğenin ortasına taşır. Parametreler : toElement- taşınacak öğe.
serbest bırakmak() Mevcut fare konumunda basılı sol fare düğmesini serbest bırakır
sendKeys (onElement, charsequence) Öğeye bir dizi tuş vuruşu gönderir. Parametreler : onElement - tuş vuruşlarını alacak olan öğe, genellikle bir metin alanı dizisi - gönderilecek tuş vuruşlarının sırasını temsil eden herhangi bir dize değeri

Aşağıdaki örnekte, bir Mercury Tours'un tablo satırlarında fareyle üzerine gelmek için moveToElement () yöntemini kullanacağız. Aşağıdaki örneğe bakın.

Yukarıda gösterilen hücre, bir öğesinin bir parçasıdır. Üzerine gelmezse, rengi # FFC455 (turuncu) olur. Fareyle üzerine geldikten sonra hücrenin rengi şeffaf hale gelir. Tüm turuncu masanın mavi arka planıyla aynı renk olur.

Adım 1: Eylemler ve Eylem sınıflarını içe aktarın .

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

Adım 3: Adım 2'deki Eylemler nesnesini kullanarak bir Eylemin örneğini oluşturun.

Bu durumda, moveToElement () yöntemini kullanacağız çünkü sadece fareyi "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 derlenecektir.

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

Aşağıda, fareyle üzerine gelmeden önce ve sonra öğesinin arka plan rengini kontrol etmek için tüm WebDriver kodu verilmiştir.

newproject paketi;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 = "http://demo.guru99.com/test/newtours/";System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");WebDriver sürücüsü = yeni FirefoxDriver ();driver.get (baseUrl);WebElement link_Home = driver.findElement (By.linkText ("Ana Sayfa"));WebElement td_Home = sürücü.findElement (Yazan.xpath ("// html / body / div"+ "/ table / tbody / tr / td"+ "/ table / tbody / tr / td"+ "/ table / tbody / tr / td"+ "/ tablo / gövde / tr"));Eylem oluşturucu = yeni Eylemler (sürücü);Eylem mouseOverHome = oluşturucu.moveToElement (link_Home).inşa etmek();String bgColor = td_Home.getCssValue ("arka plan rengi");System.out.println ("Fareyle üzerine gelmeden önce: + bgColor);mouseOverHome.perform ();bgColor = td_Home.getCssValue ("arka plan rengi");System.out.println ("Fareyle üzerine geldikten sonra: + bgColor);driver.close ();}}

Aşağıdaki çıktı, fareyle üzerine geldikten sonra arka plan renginin şeffaf hale geldiğini açıkça belirtir.

Bir Seri Çoklu Eylem Oluşturma

Eylem ve Eylemler sınıflarını kullanarak bir dizi eylem oluşturabilirsiniz . Seriyi build () yöntemiyle kapatmayı unutmayın. Aşağıdaki örnek kodu inceleyin.

public static void main (String [] args) {String baseUrl = "http://www.facebook.com/";WebDriver sürücüsü = yeni FirefoxDriver ();driver.get (baseUrl);WebElement txtUsername = driver.findElement (Yazan.id ("e-posta"));Eylem oluşturucu = yeni Eylemler (sürücü);Action seriesOfActions = oluşturucu.moveToElement (txtUsername).Tıklayın().keyDown (txtUsername, Keys.SHIFT).sendKeys (txtUsername, "merhaba").keyUp (txtUsername, Keys.SHIFT).doubleClick (txtUsername).contextClick ().inşa etmek();seriesOfActions.perform ();}

Özet

  • Özel klavye ve fare olaylarının işlenmesi, AdvancedUserInteractions API kullanılarak yapılır.
  • Sık kullanılan Anahtar Kelime ve Fare Olayları, doubleClick (), keyUp, dragAndDropBy, contextClick & sendKeys'dir.