Resimdeki Resime Nasıl Tıklanır? Selenium Web sürücüsü
⚡ Akıllı Özet
Resme tıklayın Selenium WebDriver, resim öğeleri bağlantı metni göstermediği için CSS seçici veya XPath stratejileri gerektirir. Bu makale, resmi nasıl bulacağınızı, tıklama eylemini nasıl tetikleyeceğinizi ve gezinmenin başarılı olup olmadığını nasıl doğrulayacağınızı açıklamaktadır.

Bir resme tıklamak Selenium WebDriver, bir simge, logo veya küçük resmin gezinme bağlantısı gibi davrandığı durumlarda yaygın olarak kullanılan bir görevdir. Resimler görünür metin içermediğinden, geleneksel bağlantı metni bulucuları başarısız olur ve daha güvenilir bir seçici stratejisine ihtiyaç duyulur.
Resim Bağlantılarına Erişim
Resim bağlantıları, web sayfalarında bir resimle temsil edilen ve tıklandığında tarayıcıyı farklı bir pencereye veya sayfaya yönlendiren bağlantı noktalarıdır.
Görüntü oldukları için, görüntü bağlantılarının hiç bağlantı metni bulunmadığından By.linkText() ve By.partialLinkText() yöntemlerini kullanamayız.
Bu durumda, By.cssSelector veya By.xpath yöntemlerinden birini kullanmalıyız. Basitliği ve okunabilirliği nedeniyle ilk yöntem genellikle tercih edilir.
Aşağıdaki örnekte Facebook'un Şifre Kurtarma sayfasının sol üst kısmındaki “Facebook” logosuna ulaşacağız.
By.cssSelector ve öğenin "title" özniteliğini kullanarak resim bağlantısına erişeceğiz. Ardından tarayıcının Facebook ana sayfasına yönlendirildiğini doğrulayacağız.
Java Code Örnek E-posta
Aşağıdaki Selenium WebDriver kod parçası Chrome'u başlatır, Facebook şifre kurtarma sayfasını açar, Facebook logosuna tıklar ve ortaya çıkan sayfa başlığını doğrular.
package newproject;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class MyClass {
public static void main(String[] args) {
String baseUrl = "https://www.facebook.com/login/identify?ctx=recover";
System.setProperty("webdriver.chrome.driver", "G:\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get(baseUrl);
// click on the "Facebook" logo on the upper left portion
driver.findElement(By.cssSelector("a[title=\"Go to Facebook home\"]")).click();
// verify that we are now back on Facebook's homepage
if (driver.getTitle().equals("Facebook - log in or sign up")) {
System.out.println("We are back at Facebook's homepage");
} else {
System.out.println("We are NOT in Facebook's homepage");
}
driver.close();
}
}
Sonuç
Fotoğraf Çekmek İçin En İyi Uygulamalar
Bazı alışkanlıklar, tarayıcılar ve ekran boyutları genelinde görüntü tıklama otomasyonunu daha güvenilir hale getirir.
- Derinlemesine iç içe geçmiş CSS yolları yerine, title, alt, aria-label veya data-* gibi istikrarlı öznitelikleri tercih edin.
- Tıklama işleminden önce ElementToBeClickable için açık bir WebDriverWait ekleyin.
- Tembel yüklemeli resimler için, öğeyi kaydırarak görünür hale getirin. JavascriptÖnce vasiyetnameyi yerine getiren kişi.
- Şeffaf bir katman tıklamayı engellerse, yedek olarak bir başka seçeneğe geçin. JavaKomut dosyası, alttaki öğeye tıklar.
- Sürücünün başlığını (driver.getTitle()) veya hedef sayfadaki benzersiz bir öğeyi kullanarak navigasyonu doğrulayın.
Yapay Zeka Görüntü Konum Belirleme Stratejilerini Nasıl Geliştiriyor?
Yapay zeka destekli test araçları, örneğin; TestimMabl ve Healenium, bir resmin etrafındaki DOM'u analiz eder ve kendi kendini onaran konum belirleyiciler önerir. Bir sürümden sonra bir sınıf adı veya öznitelik değiştiğinde, çerçeve otomatik olarak en istikrarlı alternatifi devreye sokar; bu da simge tabanlı gezinmede istikrarsız hataları azaltır.
Mühendisler ayrıca ChatGPT veya GitHub Copilot'ı kullanarak WebDriver kod parçacıkları oluşturabilir, bir resim için sağlam CSS veya XPath ifadeleri önerebilir ve tıklama sonrasında yüklenen sayfa için doğrulama ifadeleri taslak haline getirebilirler. Oluşturulan kod yine de doğruluk ve bekleme ve yer paylaşımlarının ele alınışı açısından incelenmelidir.
Sonuç
Resim bağlantılarına tıklamak Selenium WebDriver, istikrarlı bir konum belirleyici seçtikten sonra oldukça basittir. Başlık veya alt özniteliğiyle birlikte By.cssSelector en okunaklı yaklaşımdır, işaretleme karmaşık olduğunda By.xpath yedek çözümdür ve açık bekleme ifadeleri, betiğin çalıştırmalar arasında güvenilir olmasını sağlar.

.png)
.png)