Araç İpucu Nasıl Doğrulanır? Selenium Web Sürücüsü
Araç ipucu Selenium
A Araç ipucu Selenium Fare bir web sayfasındaki bir nesnenin üzerine geldiğinde görünen bir metindir. Nesne bir bağlantı, resim, düğme, 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' niteliği olarak uygulandı. Bu özelliğin değeri fareyle üzerine gelindiğinde bir araç ipucu olarak gösterildi. Bu, stil içermeyen öğe hakkında bilgi veren statik bir metindir.
Artık 'araç ipuçları'nın uygulanması için pek çok eklenti mevcut. Stil oluşturma, oluşturma, resimler ve bağlantılar içeren gelişmiş araç ipuçları, kullanılarak uygulanmaktadır. JavaScript/JQuery eklentileri veya CSS Tooltips kullanımı.
- 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 değerle karşılaştırılır.
- Araç ipucu uygulamalarının diğer biçimleri için, fareyle üzerine gelme efekti 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 gerekecek.
Gelişmiş Kullanıcı Etkileşimleri API'sinin Özeti
Gelişmiş Kullanıcı Etkileşimleri API'si, bir web sayfasında sürükle ve bırak, fareyle üzerine gelme, çoklu seçim, tuşa basma ve bırakma gibi kullanıcı eylemleri ve klavye veya fareyi kullanan diğer eylemler için API sağlar.
Buna başvurabilirsiniz Link API hakkında daha fazla bilgi için.
Burada, bir kaydırıcı elemanını belirli bir mesafe kadar hareket ettirmek için ihtiyaç duyacağımız birkaç sınıf ve yöntemi nasıl kullanacağımızı görelim.
) 1 Adım API'yi kullanabilmek için aşağıdaki paketlerin/sınıfların içe aktarılması gerekiyor:
) 2 Adım “Actions” sınıfının bir nesnesini oluşturun ve kullanıcı eylemlerinin Sırasını oluşturun. Actions 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.
Sürücü nesnesi, yapıcısına bir parametre olarak sağlanır.
) 3 Adım “Actions” sınıfının build() yöntemini kullanarak bir Eylem Nesnesi oluşturun. Actions nesnesi (burada oluşturucu) tarafından oluşturulan tüm eylemleri yürütmek için Perform() yöntemini çağırın.
API tarafından sağlanan kullanıcı Eylemleri yöntemlerinden bazılarının nasıl kullanılacağını gördük – clickAndHold(element), moveByOffset(10,0),release(). API buna benzer birçok yöntem sağlar.
Bakın Link daha fazla ayrıntı için.
Araç İpucu Nasıl Doğrulanır (İşlenir) Selenium
Basit senaryoda araç ipuçlarına erişme ve bunları doğrulama gösterimini görelim
- Senaryo 1: Araç ipucu "başlık" özelliği kullanılarak uygulanır
- Senaryo 2: Araç ipucu, jQuery eklentisi kullanılarak uygulanır.
Senaryo 1: HTML 'başlık' Özelliği
Bu durumda örnek siteyi ele alalım – https://demo.guru99.com/test/social-icon.html.
Sayfanın sağ üst köşesindeki “github” simgesinin ipucunu doğrulamaya çalışacağız.
Bunu yapabilmek için öncelikle öğeyi bulup 'title' özelliğini alıp beklenen araç ipucu metniyle doğrulayacağız.
Araç ipucunun “title” özelliğinde olduğunu varsaydığımız için, fareyle üzerine gelme efektini bile otomatikleştirmiyoruz, sadece “getAttribute()” yöntemini kullanarak özelliğ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 = "https://demo.guru99.com/test/social-icon.html"; System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe"); WebDriver driver = new ChromeDriver(); driver.get(baseUrl); String expectedTooltip = "Github"; // Find the Github icon at the top right of the header WebElement github = driver.findElement(By.xpath(".//*[@class='soc-ico show-round']/a[4]")); //get the value of the "title" attribute of the github icon String actualTooltip = github.getAttribute("title"); //Assert the tooltip's value is as expected System.out.println("Actual Title of Tool Tip"+actualTooltip); if(actualTooltip.equals(expectedTooltip)) { System.out.println("Test Case Passed"); } driver.close(); } }
Kodun açıklaması
- “github” simgesini temsil eden WebElement'i bulun.
- getAttribute() yöntemini kullanarak "title" niteliğini alın.
- Değeri beklenen araç ipucu değerine karşı onaylayın.
Senaryo 2: JQuery Eklentisi
Araç ipuçlarını uygulamak için çok sayıda JQuery eklentisi mevcuttur ve her biri biraz farklı bir uygulama biçimine sahiptir.
Bazı eklentiler, araç ipucunun geçerli olduğu öğenin yanında her zaman araç ipucu HTML'sinin mevcut olmasını beklerken diğerleri, öğenin üzerine gelindiğinde anında görünen dinamik bir "div" etiketi oluşturur.
Gösterimimiz için, araç ipucu uygulamasının “jQuery Tools Araç İpucu” yöntemini ele alalım.
Burada URL’de – https://demo.guru99.com/test/tooltip.html Demoyu, fareyi "Şimdi İndir"in üzerine getirdiğinizde, bir resim, belirtme çizgisi arka planı, bir tablo ve içinde tıklanabilir bir bağlantı içeren gelişmiş bir araç ipucuna ulaştığımızı görebilirsiniz.
Aşağıdaki kaynağa bakarsanız, araç ipucunu temsil eden div etiketinin her zaman “Hemen indir” bağlantısı etiketinin yanında bulunduğunu görebilirsiniz. Ancak aşağıdaki komut dosyası etiketinin içindeki kod, ne zaman açılması gerektiğini kontrol eder.
Buradaki gösterimimiz için yalnızca araç ipucundaki bağlantı metnini doğrulamaya çalışalım.
İlk önce “Şimdi İndir” e karşılık gelen WebElement'i bulacağız. Daha sonra Etkileşimler API'sini kullanarak öğeye geçeceğiz (fareyle üzerine gelme). Daha sonra, görüntülenen araç ipucunun içindeki bağlantıya karşılık gelen WebElement'i bulacağız ve bunu beklenen metinle karşılaştıracağı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 = "https://demo.guru99.com/test/tooltip.html"; System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe"); WebDriver driver = new ChromeDriver(); String expectedTooltip = "What's new in 3.2"; driver.get(baseUrl); WebElement download = driver.findElement(By.xpath(".//*[@id='download_now']")); Actions builder = new Actions (driver); builder.clickAndHold().moveToElement(download); builder.moveToElement(download).build().perform(); WebElement toolTipElement = driver.findElement(By.xpath(".//*[@class='box']/div/a")); String actualTooltip = toolTipElement.getText(); System.out.println("Actual Title of Tool Tip "+actualTooltip); if(actualTooltip.equals(expectedTooltip)) { System.out.println("Test Case Passed"); } driver.close(); } }
Kod Açıklama
- Fareyle üzerine geleceğimiz "şimdi indir" öğesine karşılık gelen WebElement'i bulun.
- Etkileşimler API'sini kullanarak fareyi "Şimdi indir" seçeneğinin üzerine getirin.
- Araç ipucunun görüntülendiğini varsayarsak, araç ipucunun içindeki bağlantıya, yani "a" etiketine karşılık gelen WebElement'i bulun.
- getText() kullanılarak alınan bağlantının ipucu metnini, "expectedToolTip"te sakladığımız beklenen değerle karşılaştırarak doğrulayın
ÖZET
Bu eğitimde Araç İpuçlarına nasıl erişeceğinizi öğrendiniz. Selenium Ağ sürücüsü.
Araç İpuçları farklı şekillerde uygulanır;
- Temel uygulama HTML'nin “title” niteliğine dayanmaktadır. getAttribute(title) araç ipucunun değerini alır.
- JQuery gibi diğer araç ipucu uygulamaları, CSS araç ipuçları, fareyle üzerine gelme efekti oluşturmak için Etkileşimler API'sini gerektirir
Gelişmiş Kullanıcı Etkileşimleri API'si–
- Actions sınıfının moveToElement(element) işlevi, bir öğenin üzerine fareyle gelmek için kullanılır.
- Actions sınıfının Build() yöntemi, kullanıcı eylemlerinin sırasını bir Action nesnesine oluşturur.
- Action sınıfının Perform() işlevi, tüm kullanıcı eylemleri dizisini aynı anda yürütür.
Bir araç ipucunu doğrulamak için, önce öğenin üzerine fareyle gelmemiz, ardından araç ipucuna karşılık gelen öğeyi bulmamız ve beklenen değerlere göre doğrulamak için metnini veya diğer değerlerini almamız gerekir.