Araç İpucu Nasıl Doğrulanır? Selenium
⚡ Akıllı Özet
İpucu metnini doğrulayın. Selenium WebDriver, ipucu metnini doğrulamak için iki güvenilir yöntem sunar: HTML title özniteliğini doğrudan okumak ve dinamik olarak oluşturulan öğelerin üzerine gelmek için Actions API'yi kullanmak. JavaKomut dosyası veya jQuery araç ipuçları.
Araç ipucu Selenium
A Araç ipucu Selenium Web sayfasındaki bir nesnenin üzerine fareyle gelindiğinde görünen kısa bir metindir. Nesne bir bağlantı, resim, düğme veya metin alanı olabilir. İpucu metni genellikle imlecin altındaki öğe hakkında daha fazla bilgi verir.
Araç ipuçları geleneksel olarak bir öğenin "başlık" özniteliği olarak uygulanırdı. Bu özniteliğin değeri, fareyle üzerine gelindiğinde araç ipucu olarak gösterilirdi. Bu, öğe hakkında bilgi veren, stil içermeyen statik bir metindir.
Günümüzde, araç ipucu uygulaması için birçok eklenti mevcuttur. Stil, görüntüleme, resim ve bağlantılar içeren gelişmiş araç ipuçları, bu eklentiler kullanılarak oluşturulmaktadır. JavaKomut dosyası veya jQuery eklentileriyle veya yalnızca CSS ile oluşturulmuş ipuçları.
- HTML "title" özniteliği aracılığıyla uygulanan statik ipuçlarına erişmek veya bunları doğrulamak için şunu kullanın:
getAttribute("title")WebElement üzerinde bir yöntem kullanılır. Döndürülen değer (ipucu metni), doğrulama için beklenen bir değerle karşılaştırılır. - Diğer ipucu uygulamaları için, fareyle üzerine gelme efektini oluşturmak ve ardından öğenin ipucunu almak üzere WebDriver tarafından sağlanan "Gelişmiş Kullanıcı Etkileşimleri API'sini" kullanın.
Gelişmiş Kullanıcı Etkileşimleri API'sinin Özeti
Gelişmiş Kullanıcı Etkileşimleri API'si, sürükle bırak, fareyle üzerine gelme, çoklu seçim, tuşa basma ve bırakma ve bir web sayfasındaki diğer klavye veya fare eylemleri gibi kullanıcı eylemlerini ortaya çıkarır.
Buna başvurabilirsin resmi Eylemler sınıfı referansı API hakkında daha fazla bilgi için.
Atlamadan önceping Şimdi bu senaryoları inceleyelim ve bir kaydırıcı öğesini belirli bir mesafe kadar hareket ettirmek için ihtiyaç duyduğumuz sınıflara ve yöntemlere bakalım.
) 1 Adım API'yi kullanmak için aşağıdaki paketleri ve sınıfları içe aktarın:
) 2 Adım “Actions” sınıfından bir nesne oluşturun ve kullanıcı eylemlerinin sırasını oluşturun. Actions sınıfı, moveToElement() ve dragAndDrop() gibi zincirleme eylemler oluşturur. Sürücü nesnesi, yapıcıya parametre olarak geçirilir.
) 3 Adım “Actions” sınıfının build() yöntemini kullanarak bir Action nesnesi oluşturun. Oluşturucuda sıraya alınmış her eylemi yürütmek için perform() yöntemini çağırın.
API tarafından sağlanan bazı kullanıcı eylemi yöntemlerinin nasıl kullanılacağını gördük: clickAndHold(element), moveByOffset(10, 0) ve release(). API çok daha fazlasını sunmaktadır.
İpucu Uygulaması vs. Selenium Doğrulama Yaklaşımı
| İpucu Türü | Nasıl Oluşturulur | Selenium Yaklaşım |
|---|---|---|
| HTML başlık özniteliği | Öğenin kendisinde saklanan metin; tarayıcı fareyle üzerine gelindiğinde gösterir. | İle oku getAttribute("title") or getDomAttribute("title")Fareyi üzerine getirmeye gerek yok. |
| jQuery / JS eklentisi | İlgili öğenin üzerine fareyle gelindiğinde, yanında özel bir div etiketi görüntülenir. | Eylemleri Kullanın moveToElement(target).perform()Bekleyin, ardından ipucu öğesini okuyun. getText(). |
| Sadece CSS içeren ipucu | Sözde öğe veya kardeş div, şu şekilde değiştirilir: :hover. |
Hareketleri kullanarak fareyle üzerine gelindiğinde tetiklenen metni veya hesaplanan stili okuyun. |
Araç İpucu Nasıl Doğrulanır (İşlenir) Selenium
İki yaygın senaryo üzerinden araç ipuçlarına erişmeyi ve bunları doğrulamayı inceleyelim:
- Senaryo 1: Araç ipucu, "title" özniteliği kullanılarak uygulanır.
- Senaryo 2: İpucu, bir jQuery eklentisi kullanılarak uygulanmıştır.
Senaryo 1: HTML "title" Özniteliği
Bu durumda örnek siteyi kullanıyoruz. https://demo.guru99.com/test/social-icon.html Sayfanın sağ üst köşesindeki "github" simgesinin ipucu metnini doğrulayın.
Öncelikle öğeyi buluyoruz, ardından "title" özelliğini okuyoruz ve bunu beklenen ipucu metniyle karşılaştırıyoruz.
Araç ipucu "title" özniteliğinde olduğundan, fareyle üzerine gelme işlemini bile otomatikleştirmiyoruz; sadece getAttribute() yöntemiyle öznitelik 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]")); // Read the "title" attribute value of the Github icon String actualTooltip = github.getAttribute("title"); // Assert that the tooltip value matches the expected one 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() metodu ile "title" özelliğini okuyun.
- Beklenen ipucu metniyle karşılaştırarak değeri doğrulayın.
Selenium 4 ipucu: tercih ederim getDomAttribute("title") HTML özniteliği için ve bırak Selenium Yönetici, sabit kodlama yerine sürücüyü çözümlüyor. chromedriver.exe.
Senaryo 2: jQuery Eklentisi
Birçok jQuery eklentisi araç ipuçları (tooltip) özelliğini destekler ve her biri biraz farklı şekilde görüntülenir.
Bazı eklentiler ipucu işaretini tetikleyici öğenin yanında her zaman tutarken, diğerleri imleç tetikleyiciye girdiğinde dinamik olarak bir "div" etiketi oluşturur.
Bu gösterim için "jQuery Araçları İpucu" stilini kullanıyoruz.
Açılış https://demo.guru99.com/test/tooltip.html"Şimdi indir" seçeneğinin üzerine gelindiğinde, resim, açıklama metni, küçük bir tablo ve tıklanabilir bir bağlantı içeren gelişmiş bir ipucu penceresi görüntülenir.
Kaynak kodunu incelerseniz, ipucu kutusunu temsil eden div etiketi zaten "Şimdi indir" bağlantısının yanında yer alıyor. Aşağıdaki script etiketi ise ne zaman görüneceğini kontrol ediyor.
Şimdi ipucu metninde gösterilen bağlantıyı doğrulayalım.
Öncelikle “Şimdi İndir” bağlantısına karşılık gelen WebElement'i bulun. Öğeye gitmek için Etkileşimler API'sini kullanın (fareyle üzerine gelme). Ardından, görüntülenen ipucu içindeki bağlantıya karşılık gelen WebElement'i bulun ve metnini beklenen değerle karşılaştırın.
İşte kod:
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); // Hover over the "Download now" link to reveal the tooltip 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(); } }
Code Açıklama:
- Fare imlecini üzerine getirdiğiniz "Şimdi indir" öğesine karşılık gelen WebElement'i bulun.
- Etkileşimler API'sini kullanarak imleci "Şimdi indir" üzerine getirin.
- İpucu görüntülendikten sonra, ipucunun içindeki bağlantıyı temsil eden WebElement'i ("a" etiketi) bulun.
- İpucu metnini okuyun.
getText()ve bunu depolanan beklenen değerle karşılaştırın.expectedTooltip.









