Cari Elemen dan FindElements oleh XPath di Selenium WebDriver

Isi kandungan:

Anonim

Mengapa anda memerlukan arahan Cari Elemen?

Interaksi dengan laman web memerlukan pengguna untuk mencari elemen web. Perintah Find Element digunakan untuk mengenal pasti (satu) elemen web dalam laman web secara unik. Manakala, perintah Find Elements digunakan untuk mengenal pasti senarai elemen web dalam halaman web secara unik. Terdapat pelbagai cara untuk mengenal pasti elemen web secara unik di dalam laman web seperti ID, Nama, Nama Kelas, Teks Pautan, Teks Pautan Separa, Nama Tag dan XPATH.

Sintaks arahan FindElement:

Perintah Selenium Find Element mengambil objek By sebagai parameter dan mengembalikan objek senarai jenis WebElement di Selenium. Oleh objek pada gilirannya dapat digunakan dengan pelbagai strategi pencari seperti elemen cari dengan ID Selenium, Nama, Nama Kelas, XPATH dll. Berikut adalah sintaks arahan FindElement dalam pemacu web Selenium.

WebElement elementName = driver.findElement (Oleh.LocatorStrategy ("LocatorValue"));

Strategi Pencari boleh menjadi salah satu nilai berikut.

  • ID
  • Selenium cari unsur dengan Nama
  • Nama Kelas
  • Nama Tag
  • Teks Pautan
  • Teks Pautan Separa
  • XPATH

Nilai Pencari adalah nilai unik yang menggunakan elemen web yang dapat dikenal pasti. Adalah menjadi tanggungjawab pembangun dan penguji untuk memastikan bahawa elemen web dapat dikenal pasti secara unik menggunakan sifat tertentu seperti ID atau nama.

Contoh:

WebElement loginLink = driver.findElement (By.linkText ("Login"));

Sintaks arahan FindElements:

Perintah FindElements dalam Selenium mengambil objek By parameter dan mengembalikan senarai elemen web. Ia mengembalikan senarai kosong jika tidak ada unsur yang dijumpai menggunakan strategi pencari dan nilai pencari yang diberikan. Di bawah adalah sintaks perintah cari elemen.

Senaraikan  elementName = driver.findElements (By.LocatorStrategy ("LocatorValue"));

Contoh:

Senarai  listOfElements = driver.findElements (By.xpath ("// div"));

Cari elemen Vs Cari unsur

Berikut adalah perbezaan utama antara perintah cari dan cari elemen.

Cari unsur Vs Cari unsur di Selenium
Cari Elemen Cari Elemen
Mengembalikan elemen web paling pertama jika terdapat banyak elemen web yang dijumpai dengan pencari yang sama Mengembalikan senarai elemen web
Membuang pengecualian NoSuchElementException jika tidak ada unsur yang sepadan dengan strategi pencari Mengembalikan senarai kosong jika tidak ada elemen web yang sesuai dengan strategi pencari
Cari elemen oleh XPath hanya akan menemui satu elemen web Ia akan menemui kumpulan elemen yang sesuai dengan strategi pencari.
Tidak berkenaan Setiap elemen Web diindeks dengan nombor bermula dari 0 sama seperti array

Contoh: Cara menggunakan perintah Find Element

Aplikasi berikut digunakan untuk tujuan demo

http://demo.guru99.com/test/ajax.html

Senario:

1. Buka AUT

2. Cari dan klik butang radio

pakej com.sample.stepdefinitions;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;kelas awam NameDemo {utama kekosongan statik awam (String [] args) {// TODO Kaedah penjanaan automatikSystem.setProperty ("webdriver.chrome.driver", "D: \\ 3rdparty \\ chrome \\ chromedriver.exe");Pemacu WebDriver = ChromeDriver baru ();driver.manage (). window (). maksimalkan ();driver.get ("http://demo.guru99.com/test/ajax.html");// Cari butang radio untuk "Tidak" menggunakan IDnya dan klik padanyadriver.findElement (By.id ("tidak")). klik ();// Klik pada Butang Semakdriver.findElement (By.id ("buttoncheck")). klik ();}}

Contoh: Cara menggunakan perintah Find Elements

Senario:

1. Buka URL untuk Permohonan Dalam Ujian

2. Cari teks butang radio dan cetak ke konsol output

pakej com.sample.stepdefinitions;import java.util.List;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.chrome.ChromeDriver;kelas awam NameDemo {utama kekosongan statik awam (String [] args) {System.setProperty ("webdriver.chrome.driver", "X: //chromedriver.exe");Pemacu WebDriver = ChromeDriver baru ();driver.get ("http://demo.guru99.com/test/ajax.html");Senaraikan elemen  = driver.findElements (By.name ("name"));System.out.println ("Bilangan elemen: + element.size ());untuk (int i = 0; i 

Ringkasan:

  • Perintah Find Element mengembalikan elemen web yang sepadan dengan elemen paling pertama dalam laman web.
  • Perintah Find Elements mengembalikan senarai elemen web yang sesuai dengan kriteria.
  • Cari Element by XPath dalam arahan Selenium melemparkan NoSuchElementException jika tidak menemui elemen yang sesuai dengan kriteria.
  • Perintah Find Elements mengembalikan senarai kosong di Selenium jika tidak ada elemen yang sesuai dengan kriteria