Selenium'daki Bağlantı Metni nedir?
Selenium'daki bir Bağlantı Metni , bir web sayfasındaki köprüleri tanımlamak için kullanılır. Çapa etiketi yardımı ile belirlenir. Bir web sayfasında köprü oluşturmak için, bir bağlantı etiketi ve ardından Metin bağlantısı kullanabiliriz.
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 çok eşleşmenin mevcut olduğu senaryolar sağlar ve WebDriver'ın bunlarla nasıl başa çıkacağını açıklar.
Bu eğitimde, Webdriver 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 bazı genel sorunları tartışacağız ve bunların nasıl çözüleceğini daha ayrıntılı olarak tartışacağız.
İşte öğreneceğiniz şey
- Exact Text Match kullanarak bağlantılara erişim: By.linkText ()
- Kısmi Metin Eşleştirme kullanarak bağlantılara erişme: By.partialLinkText ()
- Aynı Bağlantı Metnine Sahip Birden Çok Bağlantı Nasıl Elde Edilir
- Bağlantı Metni için büyük / küçük harf duyarlılığı
- Blok Dışındaki ve İçerisindeki Bağlantılar
Exact Text Match kullanarak bağlantılara erişim: By.linkText ()
Bağlantılara tam bağlantı metinlerini kullanarak erişim, By.linkText () yöntemiyle yapılır . Bununla birlikte, aynı bağlantı metnine sahip iki bağlantı varsa, bu yöntem yalnızca ilkine erişecektir. Aşağıdaki HTML kodunu düşünün
Aşağıdaki WebDriver kodunu çalıştırmayı denediğinizde, ilk "buraya tıklayın" bağlantısına erişeceksiniz.
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 = "http://demo.guru99.com/test/link.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");WebDriver sürücüsü = yeni ChromeDriver ();driver.get (baseUrl);driver.findElement (By.linkText ("buraya tıklayın")) tıklayın ();System.out.println ("sayfanın başlığı: + driver.getTitle ());driver.quit ();}}
İşte böyle çalışıyor-
Sonuç olarak, otomatik olarak Google'a yönlendirileceksiniz.
Kısmi Metin Eşleştirme kullanarak bağlantılara erişme: By.partialLinkText ()
Bağlantı metinlerinin bir bölümünü kullanarak bağlantılara erişim, By.partialLinkText () yöntemi kullanılarak yapılır . Birden çok 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 düşünün.
Aşağıdaki WebDriver kodunu çalıştırdığınızda, yine de Google'a yönlendirileceksiniz.
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 = "http://demo.guru99.com/test/accessing-link.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");WebDriver sürücüsü = yeni ChromeDriver ();driver.get (baseUrl);driver.findElement (By.partialLinkText ("burada")). tıklayın ();System.out.println ("Sayfanın başlığı: + driver.getTitle ());driver.quit ();}}
Aynı Bağlantı Metnine Sahip Birden Çok Bağlantı 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 ilki dışındaki bağlantılara erişmek istediğimiz durumlarda, bu konuda nasıl hareket ederiz?
Bu tür durumlarda, genellikle farklı konumlandırıcılar, yani… By.xpath (), By.cssSelector () veya By.tagName () kullanılır.
En yaygın olarak kullanılan By.xpath () 'dir. En güvenilir olanıdır, ancak aynı zamanda karmaşık ve okunamaz görünmektedir.
Bağlantı Metni için büyük / küçük harf duyarlılığı
By.linkText () ve By.partialLinkText () parametrelerinin ikisi de büyük / küçük harf 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 "KAYDOL" bağlantısı, diğeri ise sağ alt kısımda bulunan "Buradan kaydolun" bağlantısıdır. sayfanın.
Her iki bağlantı da "egis" karakter dizisini içerse de, biri "By.partialLinkText ()" yöntemi, karakterlerin büyük harf kullanımına bağlı olarak bu iki bağlantıya ayrı ayrı erişecektir. Aşağıdaki örnek koda bakın.
Kodu
public static void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/newtours/";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");WebDriver sürücüsü = yeni ChromeDriver ();driver.get (baseUrl);String theLinkText = driver.findElement (By.partialLinkText ("egis")).getText ();System.out.println (theLinkText);theLinkText = driver.findElement (Yazan.partialLinkText ("EGIS")).getText ();System.out.println (theLinkText);driver.quit ();}