Bağlantı Metni ve Kısmi Bağlantı Metni Selenium

⚡ Akıllı Özet

Bağlantı Metni ve Kısmi Bağlantı Metni Selenium Web sayfasındaki köprüleri, bağlantı metinleri aracılığıyla bulun. By.linkText() yöntemi tam metni eşleştirirken, By.partialLinkText() yöntemi bir bölümünü eşleştirir ve her iki bulucu da büyük/küçük harf duyarlıdır ve ilk eşleşmeyi döndürür.

  • 🔗 Bağlantı Metni Tanımı: Sayfadaki bağlantıları, görünür bağlantı metinlerine göre bulur.
  • 🎯 By.linkText(): Bağlantı metniyle birebir eşleşir ve ilk eşleşmeyi döndürür.
  • 🔎 By.partialLinkText(): Bağlantı metninin bir bölümüyle eşleşir ve ilk eşleşmeyi döndürür.
  • 🔠 Harfe duyarlı: Her iki arama motoru da büyük harf kullanımını önemli kabul ettiğinden, "egis" ve "EGIS" birbirinden farklıdır.
  • 🧱 Çoklu/Blok Bağlantılar: Yinelenen öğeler için xpath veya cssSelector kullanın; her iki yöntem de blok etiketlerinin içinde veya dışında çalışır.

Bağlantı Metni ve Kısmi Bağlantı Metni Selenium

Bağlantı Metni Nedir? Selenium?

A Bağlantı Metni Selenium Bir web sayfasındaki köprüleri tanımlamak için kullanılır. Bir çapa etiketi yardımıyla belirlenir. Bir web sayfasında köprüler oluşturmak için, bir bağlantı etiketi ve ardından bağlantı Metni kullanabiliriz.

Bir Kriterle Eşleşen Bağlantılar

Bağlantılara, bağlantı metinlerinin tam veya kısmi eşleşmesi kullanılarak erişilebilir. Aşağıdaki örnekler, birden fazla eşleşmenin mevcut olabileceği senaryoları sağlar ve WebDriver'ın bunlarla nasıl başa çıkacağını açıklar.

Bu eğitimde, Web Sürücüsünü kullanarak Bağlantıları bulmak ve bunlara erişmek için mevcut yöntemleri öğreneceğiz. Ayrıca Bağlantılara erişirken karşılaşılan yaygın sorunlardan bazılarını tartışacağız ve bunların nasıl çözüleceği hakkında daha fazla tartışacağız.

Bağlantı Metnini Tamamlayın Selenium – By.linkText()

Bağlantılara tam bağlantı metinlerini kullanarak erişmek By.linkText() yöntemi aracılığıyla yapılır.. Ancak aynı bağlantı metnine sahip iki bağlantı varsa bu yöntem yalnızca ilkine erişecektir. Aşağıdaki HTML kodunu göz önünde bulundurun

Metni Bağla Selenium–By.LinkText()

Metni Bağla Selenium–By.LinkText()

Aşağıdaki WebDriver kodunu çalıştırmayı denediğinizde ilk “buraya tıklayın” bağlantısına ulaşacaksınız.

Metni Bağla Selenium–By.LinkText()

Kod:

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://demo.guru99.com/test/link.html";
        System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();

        driver.get(baseUrl);
        driver.findElement(By.linkText("click here")).click();
        System.out.println("title of page is: " + driver.getTitle());
        driver.quit();
    }

}

İşte nasıl çalıştığı-

Metni Bağla Selenium–By.LinkText()

Sonuç olarak, otomatik olarak şuraya yönlendirileceksiniz: Google.

Metni Bağla Selenium–By.LinkText()

Kısmi Bağlantı Metnini Tamamlayın Selenium – By.partialLinkText()

Bağlantı metinlerinin bir kısmını kullanarak bağlantılara erişim, By.partialLinkText() yöntem. Birden fazla eşleşme içeren kısmi bir bağlantı metni belirtirseniz yalnızca ilk eşleşmeye erişilecektir. Aşağıdaki HTML kodunu göz önünde bulundurun.

Kısmi Bağlantı Metni Girişi Selenium – By.partialLinkText()

 Kısmi Bağlantı Metni Girişi Selenium – By.partialLinkText()

Aşağıdaki WebDriver kodunu çalıştırdığınızda, yine de şu sayfaya yönlendirileceksiniz: Google.

 Kısmi Bağlantı Metni Girişi Selenium – By.partialLinkText()

Kod:

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class P1 {

    public static void main(String[] args) {
        String baseUrl = "https://demo.guru99.com/test/accessing-link.html";
        System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();

        driver.get(baseUrl);
        driver.findElement(By.partialLinkText("here")).click();
        System.out.println("Title of page is: " + driver.getTitle());
        driver.quit();
    }
}

Kısmi Bağlantı Metni Girişi Selenium – By.partialLinkText()

Aynı Bağlantı Metni ile Çoklu bağlantılar nasıl elde edilir

Peki yukarıdaki problemin üstesinden nasıl gelinir? Aynı bağlantı metnine sahip birden fazla bağlantının olduğu ve ilkinin dışındaki bağlantılara erişmek istediğimiz durumlarda bunu nasıl yapacağız?

Bu gibi durumlarda genellikle By.xpath(), By.cssSelector() veya By.tagName() gibi farklı konum belirleyiciler kullanılır.

En yaygın kullanılan By.xpath()'dir. En güvenilir olanıdır ancak karmaşık ve okunaksız da görünür.

Bağlantı Metni için büyük/küçük harf duyarlılığı

Bağlantı Metni İçin Büyük/Küçük Harf Duyarlılığı

için parametreler By.linkText() hem de By.partialLinkText() her ikisi de büyük/küçük harfe duyarlıdır, yani büyük harf kullanımı önemlidir. Örneğin, Mercury Tours'un ana sayfasında “egis” metnini içeren iki bağlantı vardır; biri üst menüde bulunan “KAYIT OLUN” bağlantısı, diğeri ise sayfanın sağ alt kısmında bulunan “Buradan kaydolun” bağlantısıdır.

Bağlantı Metni İçin Büyük/Küçük Harf Duyarlılığı

Her iki bağlantı da "egis" karakter dizisini içermesine rağmen, "By.partialLinkText()" yöntemi, karakterlerin büyük/küçük harf kullanımına bağlı olarak bu iki bağlantıya ayrı ayrı erişecektir. Aşağıdaki örnek koda bakın.

Bağlantı Metni İçin Büyük/Küçük Harf Duyarlılığı

Code

public static void main(String[] args) {
        String baseUrl = "https://demo.guru99.com/test/newtours/";
        System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();

        driver.get(baseUrl);
        String theLinkText = driver.findElement(By
                .partialLinkText("egis"))
                .getText();
        System.out.println(theLinkText);
        theLinkText = driver.findElement(By
                .partialLinkText("EGIS"))
                .getText();
        System.out.println(theLinkText);

        driver.quit();

    }

Bir Bloğun Dışındaki ve İçindeki Bağlantılar

En son HTML5 standardı , etiketlerin , , veya gibi blok düzeyindeki etiketlerin içine ve dışına yerleştirilmesine olanak tanır . “By.linkText()” ve “By.partialLinkText()” yöntemleri, bu blok düzeyindeki öğelerin dışında ve içinde bulunan bir bağlantıya erişebilir. Aşağıdaki HTML kodunu göz önünde bulundurun.

Bir Bloğun Dışındaki ve İçindeki Bağlantılar

Bir Bloğun Dışındaki ve İçindeki Bağlantılar

Aşağıdaki WebDriver kodu, By.partialLinkText() yöntemini kullanarak bu bağlantıların her ikisine de erişir.

Bir Bloğun Dışındaki ve İçindeki Bağlantılar

Kod:

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://demo.guru99.com/test/block.html";
        System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();

        driver.get(baseUrl);
        driver.findElement(By.partialLinkText("Inside")).click();
        System.out.println(driver.getTitle());
        driver.navigate().back();
        driver.findElement(By.partialLinkText("Outside")).click();
        System.out.println(driver.getTitle());
        driver.quit();
    }
}

Yukarıdaki çıktı, ilgili sayfa başlıkları doğru şekilde alındığından her iki bağlantıya da başarıyla erişildiğini doğrular.

SSS

By.linkText() bir bağlantının tam, görünür metnini eşleştirirken, By.partialLinkText() verilen bir alt dizeyi içeren herhangi bir bağlantıyı eşleştirir. Birden fazla bağlantı uygun olduğunda, her ikisi de yalnızca ilk eşleşen bağlantıyı döndürür.

Evet. Hem By.linkText() hem de By.partialLinkText() büyük/küçük harf duyarlıdır, bu nedenle büyük/küçük harf kullanımı önemlidir. "egis" ve "EGIS" metinleri farklı değerler olarak ele alınır ve aynı sayfadaki farklı bağlantılarla eşleşebilir.

Bağlantı metni bulucuları yalnızca ilk eşleşmeyi döndürdüğü için, belirli bir bağlantıyı hedeflemek için By.xpath() veya By.cssSelector() kullanın veya tüm bağlantıları toplamak ve ihtiyacınız olanı seçmek için By.tagName("a") ile findElements() kullanın.

Yapay zeka araçları, DOM'u analiz eder ve sağlam XPath veya CSS seçicileri önermek için öznitelikleri kararlılıklarına göre sıralar. Benzersiz, daha az kırılgan tanımlayıcıları tercih ederek, test yürütme sırasında küçük kullanıcı arayüzü değişikliklerinden kaynaklanan hataları azaltırlar.

Evet. Kendi kendini onaran test çerçeveleri, bir konum belirleyicinin başarısız olduğunu tespit etmek için yapay zekayı kullanır, ardından yakındaki öğeleri benzerliklerine göre puanlar ve otomatik olarak en yakın eşleşmeye geçer.ping Daha az manuel bakım gerektiren testler.

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