Selenium'da Araç İpucu
Bir Selenyum içinde ipucu Bir web sayfasında bir nesnenin üzerine zaman bir fare fareyi üzerine görünen bir metindir. Nesne bir bağlantı, bir görüntü, bir düğme, bir metin alanı vb. Olabilir. Araç ipucu metni genellikle kullanıcının fare imlecinin üzerine geldiği nesne hakkında daha fazla bilgi verir.
Araç ipuçları geleneksel olarak bir öğeye 'başlık' özelliği olarak uygulanmıştır. Bu özelliğin değeri, fareyle üzerine gelindiğinde bir araç ipucu olarak gösterildi. Bu, stil olmadan öğenin bilgilerini veren statik bir metindir.
Şimdi, "araç ipuçları" uygulaması için pek çok eklenti var. Stil, işleme, resimler ve bağlantılar içeren gelişmiş araç ipuçları, JavaScript / JQuery eklentileri veya CSS Araç İpuçları kullanılarak uygulanmaktadır.
- HTML "title" özelliği kullanılarak uygulanan statik araç ipuçlarına erişmek veya bunları doğrulamak için, WebElement'in getAttribute ("title") yöntemini kullanabiliriz. Bu yöntemin döndürülen değeri (araç ipucu metnidir), doğrulama için beklenen bir değerle karşılaştırılır.
- Araç ipucu uygulamalarının diğer biçimleri için, fareyle üzerine gelme efektini oluşturmak ve ardından öğenin araç ipucunu almak için Web Sürücüsü tarafından sağlanan "Gelişmiş Kullanıcı Etkileşimleri API" sini kullanmamız gerekecektir.
Gelişmiş Kullanıcı Etkileşimleri API'sinin Özeti:
Gelişmiş Kullanıcı Etkileşimleri API'si, bir web sayfasında klavye veya fareyi kullanarak sürükle ve bırak, gezinme, çoklu seçim, tuşa basma ve bırakma gibi kullanıcı eylemleri ve diğer eylemler için API sağlar.
API hakkında daha fazla ayrıntı için bu bağlantıya başvurabilirsiniz.
https://seleniumhq.github.io/selenium/docs/api/java/index.html?org/openqa/selenium/interactions/Actions.html
Burada, kaydırıcı elemanını bir ofset ile hareket ettirmemiz gereken birkaç sınıf ve yöntemi nasıl kullanacağımızı görelim.
Adım 1) API'yi kullanmak için aşağıdaki paketlerin / sınıfların içe aktarılması gerekir:
Adım 2) "Eylemler" sınıfının bir nesnesini oluşturun ve kullanıcı eylemleri Sırasını oluşturun. Eylemler sınıfı, moveToElement (), dragAndDrop () vb. Gibi kullanıcı eylemlerinin sırasını oluşturmak için kullanılır. Kullanıcı eylemleriyle ilgili çeşitli yöntemler API tarafından sağlanır.
Driver nesnesi, yapıcısına bir parametre olarak sağlanır.
Adım 3) "Actions" sınıfının build () yöntemini kullanarak bir Action Object oluşturun. Eylemler nesnesi tarafından oluşturulan tüm eylemleri yürütmek için perform () yöntemini çağırın (oluşturucu burada).
API tarafından sağlanan bazı kullanıcı İşlemleri yöntemlerinin nasıl kullanılacağını gördük - clickAndHold (element), moveByOffset (10,0), release (). API, bu tür birçok yöntem sağlar.
Daha fazla ayrıntı için bağlantıya bakın.
Selenium Webdriver'da Araç İpucu Metni nasıl elde edilir
Basit senaryodaki araç ipuçlarına erişmenin ve bunları doğrulamanın gösterimini görelim.
- 1. Senaryo: Araç ipucu, "başlık" özelliği kullanılarak uygulanır
- Senaryo 2: Araç ipucu bir jQuery eklentisi kullanılarak uygulanır.
Senaryo 1: HTML "başlık" Özelliği
Bu durum için örnek siteyi ele alalım - http://demo.guru99.com/test/social-icon.html.
Sayfanın sağ üst kısmındaki "github" simgesinin ipucunu doğrulamaya çalışacağız.
Bunu yapmak için önce öğeyi bulup "başlık" özniteliğini alacağız ve beklenen araç ipucu metni ile doğrulayacağız.
Araç ipucunun "başlık" özniteliğinde olduğunu varsaydığımız için, fare üzerine gelme efektini otomatikleştirmiyoruz, sadece "getAttribute ()" yöntemini kullanarak özniteliğin değerini alıyoruz.
İşte kod
import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium. *;public class ToolTip {public static void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/social-icon.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");WebDriver sürücüsü = yeni ChromeDriver ();driver.get (baseUrl);Dize beklenenTooltip = "Github";// Başlığın sağ üst köşesindeki Github simgesini bulunWebElement github = driver.findElement (By.xpath (".//*[@ class = 'soc-ico show-round'] / a [4]"));// github simgesinin "başlık" özniteliğinin değerini alString actualTooltip = github.getAttribute ("title");// Araç ipucunun değerinin beklendiği gibi olduğunu doğrulayınSystem.out.println ("Araç İpucunun Gerçek Başlığı" + actualTooltip);eğer (actualTooltip.equals (beklenenTooltip)) {System.out.println ("Test Durumu Geçti");}driver.close ();}}
Kod açıklaması
- "Github" simgesini temsil eden WebElement öğesini bulun.
- GetAttribute () yöntemini kullanarak "title" özniteliğini alın.
- Değeri beklenen araç ipucu değerine karşı ileri sürün.
Senaryo 2: JQuery Eklentisi:
Araç ipuçlarını uygulamak için çok sayıda JQuery eklentisi vardır ve her biri biraz farklı bir uygulama biçimine sahiptir.
Bazı eklentiler, araç ipucu HTML'sinin her zaman araç ipucunun uygulanabilir olduğu öğenin yanında bulunmasını beklerken, diğerleri, öğenin üzerine gelirken anında görünen dinamik bir "div" etiketi oluşturur.
Gösterimiz için, araç ipucu uygulamasının "jQuery Araçları Araç İpucu" şeklini ele alalım.
Burada - http://demo.guru99.com/test/tooltip.html URL'sinde, fareyle "Şimdi indirin" üzerine gelindiğinde demoyu görebilirsiniz, bir resim, ek bilgi arka planı, bir tablo ve içinde tıklanabilir bir bağlantı.
Aşağıdaki kaynağa bakarsanız, araç ipucunu temsil eden div etiketinin her zaman "Şimdi indir" bağlantısının etiketinin yanında bulunduğunu görebilirsiniz. Ancak, aşağıdaki komut dosyası etiketinin içindeki kod, ne zaman pop-up yapması gerektiğini kontrol eder.
Buradaki tanıtımımız için sadece araç ipucundaki bağlantı metnini doğrulamaya çalışalım.
Önce "Şimdi indir" e karşılık gelen WebElement'i bulacağız. Ardından, Etkileşimler API'sini kullanarak öğeye geçeceğiz (fareyle üzerine gelindiğinde). Ardından, görüntülenen araç ipucunun içindeki bağlantıya karşılık gelen WebElement'i bulacağız ve beklenen metne göre doğrulayacağız.
İşte kod
import org.openqa.selenium.interactions.Action;import org.openqa.selenium.interactions.Actions;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium. *;public class JqueryToolTip {public static void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/tooltip.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");WebDriver sürücüsü = yeni ChromeDriver ();String beklenenTooltip = "3.2'deki yenilikler";driver.get (baseUrl);WebElement download = driver.findElement (By.xpath (".//*[@ id = 'download_now']"));Eylem oluşturucu = yeni Eylemler (sürücü);builder.clickAndHold (). moveToElement (indir);builder.moveToElement (indir) .build (). perform ();WebElement toolTipElement = driver.findElement (By.xpath (".//*[@ class = 'box'] / div / a"));String actualTooltip = toolTipElement.getText ();System.out.println ("Araç İpucunun Gerçek Başlığı" + actualTooltip);eğer (actualTooltip.equals (beklenenTooltip)) {System.out.println ("Test Durumu Geçti");}driver.close ();}}
Kod Açıklama
- Fareyle üzerine geldiğimiz "şimdi indir" öğesine karşılık gelen WebElement öğesini bulun.
- Etkileşimler API'sini kullanarak fareyi "Şimdi indir" seçeneğinin üzerine getirin.
- Araç ipucunun görüntülendiğini varsayarsak, araç ipucu içindeki bağlantıya karşılık gelen WebElement'i, yani "a" etiketini bulun.
- GetText () kullanılarak alınan bağlantının araç ipucu metnini "BeklenenToolTip" içinde sakladığımız beklenen bir değere göre doğrulayın
Özet:
Bu eğitimde, Selenium Web sürücüsünü kullanarak Araç İpuçlarına nasıl erişeceğinizi öğrendiniz.
- Araç İpuçları farklı şekillerde uygulanır -
- Temel uygulama, HTML'nin "başlık" özniteliğine dayanır. getAttribute (title), araç ipucunun değerini alır.
- JQuery gibi diğer araç ipucu uygulamaları, CSS araç ipuçları, fare üzerine gelme efekti oluşturmak için Etkileşimler API'sini gerektirir
- Gelişmiş Kullanıcı Etkileşimleri API'si
- Eylemler sınıfının moveToElement (öğe) öğesi, fareyle bir öğenin üzerine gelmek için kullanılır.
- Eylemler sınıfının Build () yöntemi, kullanıcı eylemlerinin sırasını bir Action nesnesi halinde oluşturur.
- Perform () of Action sınıfı, tüm kullanıcı eylemleri sırasını aynı anda yürütür.
- Bir araç ipucunu doğrulamak için, önce öğeyi fareyle üzerine getirmeli, ardından araç ipucuna karşılık gelen öğeyi bulmalı ve beklenen değerlere göre doğrulamak için metnini veya diğer değerleri almalıyız.