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 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
Aşağıdaki WebDriver kodunu çalıştırmayı denediğinizde ilk “buraya tıklayın” bağlantısına ulaşacaksınız.
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ığı-
Sonuç olarak, otomatik olarak şuraya yönlendirileceksiniz: Google.
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.
Aşağıdaki WebDriver kodunu çalıştırdığınızda, yine de şu sayfaya yönlendirileceksiniz: Google.
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(); } }
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ığı
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.
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.
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.
Aşağıdaki WebDriver kodu, By.partialLinkText() yöntemini kullanarak bu bağlantıların her ikisine de erişir.
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.


.png)
.png)

.png)
.png)
.png)
.png)
.png)

.png)
.png)
.png)
.png)
.png)