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.

  • 🖱️ Temel Eylem: Bir bağlantı (anchor) içinde oluşturulan herhangi bir resim öğesine tıklamak için `driver.findElement(By.cssSelector(…)).click()` kullanın.
  • 🎯 Konum Belirleyici Seçimi: By.linkText ve By.partialLinkText resimler için çalışmaz, bu nedenle By.cssSelector veya By.xpath gereklidir.
  • 🧪 Doğrulama Adımı: Başarılı bir tıklamayı doğrulamak için, driver.getTitle() yöntemini kullanarak yeni sayfa başlığını beklenen hedef dizeyle karşılaştırın.
  • 🤖 Yapay Zeka Yardımı: Modern yapay zeka eklentileri, uygulama işaretlemesi veya öznitelik değerleri değiştiğinde kararlı CSS seçicileri önerir ve otomatik olarak hata düzeltmesi yapar.
  • Ortak tuzaklar: Gizli, tembel yüklemeli veya üst üste binen görüntüler genellikle açık bekleme süreleri, kaydırma ile görünür hale getirme veya JavaKomut dosyasının doğru şekilde kaydedilmesi için tıklayın.

İçerideki resme tıklayın Selenium

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.

Resim Bağlantılarına Erişim

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ç

İçerideki resme tıklayın Selenium Web sürücüsü

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.

SSS

By.cssSelector veya By.xpath kullanarak, title, alt veya aria-label gibi sabit bir öznitelik ile resmi bulun, ardından döndürülen WebElement üzerinde .click() yöntemini çağırın. Sonucu driver.getTitle() veya hedef sayfadaki benzersiz bir öğe ile doğrulayın.

Evet. Şunlar gibi araçlar: TestimMabl ve ChatGPT, çevredeki DOM'u inceler ve başlık, alt metin, aria etiketi veya veri özniteliklerine dayalı olarak istikrarlı bir seçici önerir. Mühendisler, oluşturulan konum belirleyicinin benzersizliğini ve dayanıklılığını yine de gözden geçirmelidir.

Kendi kendini onaran konum belirleyici, orijinal seçici başarısız olduğunda alternatif bir seçiciyi devreye sokan bir yapay zeka özelliğidir. Healenium ve Mabl gibi çerçeveler, bir görüntü etrafındaki öznitelik değişikliklerini gözlemler ve en istikrarlı yedek seçeneği belirler; bu da kullanıcı arayüzü yenilemelerinden sonraki kararsız testleri azaltır.

Her iki konum belirleyici de bir bağlantı etiketi içindeki görünür metinle eşleşir. Bir resim bağlantısı bir `img` etiketini sarar ve hiçbir metin düğümü göstermez, bu nedenle eşleşme her zaman hiçbir şey döndürmez. Bunun yerine `title`, `alt` veya `aria-label` ile `By.cssSelector` veya `By.xpath` kullanın.

Bir katman, açılır pencere veya ipucu görüntüyü engelliyorsa, görüntüyü kaydırarak görünür hale getirin. JavascriptYürütücüye ElementToBeClickable için bir WebDriverWait ekleyin. Yedek olarak, şunu yürütün: JavaKomut dosyası, çakışmayı atlamak için WebElement'e tıklar.ping katmanı.

Yeni sayfa başlığını driver.getTitle() ile, mevcut başlığı ise `driver.getTitle()` kullanarak doğrulayın. URL driver.getCurrentUrl() ile veya hedef sayfada benzersiz bir öğenin varlığıyla kontrol edilir. Bu kontrollerin birleşimi, testin tıklamanın gerçekten navigasyonu tetiklediğine dair güven duymasını sağlar.

Bu yazıyı şu şekilde özetleyin: