Temukan Elemen dengan Teks Tautan & Teks Tautan Parsial di Selenium Webdriver

Daftar Isi:

Anonim

Apa itu Teks Tautan di Selenium?

Sebuah Link Teks di Selenium digunakan untuk mengidentifikasi hyperlink pada halaman web. Itu ditentukan dengan bantuan tag jangkar. Untuk membuat hyperlink pada halaman web, kita dapat menggunakan tag anchor diikuti dengan teks tautan.

Tautan yang Sesuai dengan Kriteria

Tautan dapat diakses menggunakan teks tautan yang sama persis atau sebagian. Contoh di bawah ini memberikan skenario di mana beberapa kecocokan akan ada dan akan menjelaskan bagaimana WebDriver akan menanganinya.

Dalam tutorial ini, kita akan mempelajari metode yang tersedia untuk menemukan dan mengakses Link menggunakan Webdriver. Selain itu, kami akan membahas beberapa masalah umum yang dihadapi saat mengakses Tautan dan selanjutnya akan membahas tentang cara mengatasinya.

Inilah yang akan Anda pelajari-

  • Mengakses tautan menggunakan Pencocokan Teks Persis: By.linkText ()
  • Mengakses tautan menggunakan Partial Text Match: By.p PartialLinkText ()
  • Cara mendapatkan banyak tautan dengan Teks Tautan yang sama
  • Sensitivitas huruf besar-kecil untuk Teks Tautan
  • Tautan di Luar dan Di Dalam Blok

Mengakses tautan menggunakan Pencocokan Teks Persis: By.linkText ()

Mengakses tautan menggunakan teks tautan persisnya dilakukan melalui metode By.linkText () . Namun, jika ada dua tautan yang memiliki teks tautan yang sama, metode ini hanya akan mengakses tautan pertama. Perhatikan kode HTML di bawah ini

Saat Anda mencoba menjalankan kode WebDriver di bawah ini, Anda akan mengakses tautan "klik di sini" yang pertama

Kode:

import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;impor 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");Driver WebDriver = new ChromeDriver ();driver.get (baseUrl);driver.findElement (By.linkText ("klik di sini")). click ();System.out.println ("judul halaman adalah: + driver.getTitle ());driver.quit ();}}

Inilah cara kerjanya-

Hasilnya, Anda akan dibawa ke Google secara otomatis.

Mengakses tautan menggunakan Partial Text Match: By.p PartialLinkText ()

Mengakses tautan menggunakan sebagian teks tautannya dilakukan menggunakan metode By.p PartialLinkText () . Jika Anda menentukan teks tautan parsial yang memiliki banyak kecocokan, hanya kecocokan pertama yang akan diakses. Perhatikan kode HTML di bawah ini.

Saat Anda menjalankan kode WebDriver di bawah ini, Anda masih akan diarahkan ke Google.

Kode:

import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;impor org.openqa.selenium.chrome.ChromeDriver;kelas umum 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");Driver WebDriver = new ChromeDriver ();driver.get (baseUrl);driver.findElement (By.p PartialLinkText ("di sini")). click ();System.out.println ("Judul halaman adalah: + driver.getTitle ());driver.quit ();}}

Cara mendapatkan banyak tautan dengan Teks Tautan yang sama

Lantas, bagaimana cara mengatasi masalah di atas? Jika ada beberapa tautan dengan teks tautan yang sama, dan kami ingin mengakses tautan selain yang pertama, bagaimana kami melakukannya?

Dalam kasus seperti itu, umumnya, locator berbeda yaitu… By.xpath (), By.cssSelector () atau By.tagName () digunakan.

Paling umum digunakan adalah By.xpath (). Ini adalah yang paling dapat diandalkan tetapi juga terlihat rumit dan tidak dapat dibaca.

Sensitivitas huruf besar-kecil untuk Teks Tautan

Parameter untuk By.linkText () dan By.p PartialLinkText () sama-sama peka huruf besar / kecil, yang berarti bahwa kapitalisasi itu penting. Misalnya, di beranda Mercury Tours, ada dua tautan yang berisi teks "egis" - satu adalah tautan "DAFTAR" yang terdapat di menu atas, dan yang lainnya adalah tautan "Daftar di sini" yang terdapat di bagian kanan bawah dari halaman.

Meskipun kedua tautan berisi urutan karakter "egis", salah satunya adalah metode "By.pihakLinkText ()" akan mengakses kedua tautan ini secara terpisah tergantung pada kapitalisasi karakter. Lihat kode contoh di bawah ini.

Kode

public static void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/newtours/";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Driver WebDriver = new ChromeDriver ();driver.get (baseUrl);String theLinkText = driver.findElement (Oleh.pihakLinkText ("egis")).getText ();System.out.println (theLinkText);theLinkText = driver.findElement (Oleh.pihakLinkText ("EGIS")).getText ();System.out.println (theLinkText);driver.quit ();}

Tautan di Luar dan Di Dalam Blok

Standar HTML5 terbaru memungkinkan tag ditempatkan di dalam dan di luar tag tingkat blok seperti

,

, atau

. Metode "By.linkText ()" dan "By.p PartialLinkText ()" dapat mengakses link yang terletak di luar dan di dalam elemen level blok ini. Perhatikan kode HTML di bawah ini.

Kode WebDriver di bawah ini mengakses kedua tautan ini menggunakan metode By.p PartialLinkText ().

Kode:

import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;impor org.openqa.selenium.chrome.ChromeDriver;public class MyClass {public static void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/block.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Driver WebDriver = new ChromeDriver ();driver.get (baseUrl);driver.findElement (By.p PartialLinkText ("Inside")). click ();System.out.println (driver.getTitle ());driver.navigate (). back ();driver.findElement (By.p PartialLinkText ("Outside")). click ();System.out.println (driver.getTitle ());driver.quit ();}}

Keluaran di atas mengonfirmasi bahwa kedua tautan berhasil diakses karena judul halaman masing-masing diambil dengan benar.

Ringkasan

  • Tautan diakses menggunakan metode click ().
  • Selain pencari yang tersedia untuk WebElement apa pun, Tautan juga memiliki pencari berbasis teks tautan:
    • By.linkText () - menempatkan tautan berdasarkan pencocokan tepat dari teks tautan yang diberikan sebagai parameter.
    • By.p PartialLinkText () - menempatkan tautan berdasarkan teks sebagian yang cocok dengan teks tautan.
  • Kedua pencari lokasi di atas peka huruf besar / kecil.
  • Jika ada beberapa kecocokan, By.linkText () dan By.p PartialLinkText () hanya akan memilih kecocokan pertama. Dalam kasus seperti ini di mana terdapat banyak tautan dengan teks tautan yang sama, pencari lokasi lain berdasarkan xpath, CSS digunakan.
  • Metode findElements () & By.tagName ("a") menemukan semua elemen di halaman yang cocok dengan kriteria pencari
  • Tautan dapat diakses oleh By.linkText () dan By.p PartialLinkText () apakah mereka berada di dalam atau di luar elemen level blok.