Rumah  >  Artikel  >  Java  >  Bagaimana untuk mengendalikan borang web dinamik menggunakan Selenium WebDriver di Java?

Bagaimana untuk mengendalikan borang web dinamik menggunakan Selenium WebDriver di Java?

WBOY
WBOYke hadapan
2023-09-05 22:53:02723semak imbas

如何使用Java中的Selenium WebDriver处理动态Web表格?

Berurusan dengan borang web dinamik selalunya merupakan salah satu halangan terbesar dalam ujian automasi web, dan menggunakan Selenium WebDriver boleh mengautomasikan penyemak imbas dengan berkesan. Walaupun set ciri yang berkuasa untuk berinteraksi dengan elemen tapak web, pengendalian jadual dinamik memerlukan teknik tambahan untuk mengekstrak dan mencari data dengan cekap dalam kes ini, Java menyediakan pelbagai kaedah untuk membantu mengendalikan jadual dinamik dengan lancar;

Menggunakan kebolehsuaian dan kefungsian Selenium WebDriver di Java, penguji dapat menggunakan jadual web dinamik dengan berkesan dengan mengautomasikan interaksi antara sel atau baris dengan cekap dan tepat. Dalam tutorial ini, kami akan merangkumi strategi dan amalan terbaik untuk bekerja dengan jadual dinamik menggunakan Selenium WebDriver secara khusus, cara menavigasi jadual dinamik dengan cekap dan tepat melalui Selenium WebDriver.

Selenium WebDriver

Selenium WebDriver ialah perpustakaan Java yang semakin popular yang direka untuk mengautomasikan pelayar web. Dengan API yang berkuasa untuk berinteraksi dengan elemen tapak web, melakukan tindakan dan mendapatkan maklumat daripada halaman, Selenium WebDriver menyediakan penyelesaian yang berkuasa untuk mengautomasikan sesi penyemak imbas.

Untuk menggunakan Java dengan Selenium WebDriver, anda perlu terlebih dahulu memasang pemacu yang sesuai untuk setiap penyemak imbas web (Chrome/Firefox, dll.) dan menambah kebergantungan Selenium pada projek anda.

Setelah konfigurasi selesai, anda boleh membuat contoh antara muka WebDriver dan melancarkan tetingkap penyemak imbas web. Dari sini, anda boleh menavigasi ke URL yang berbeza menggunakan kaedah seperti findElement() dan sendKeys(), dan melakukan tindakan seperti mengklik, menyerahkan borang atau mengekstrak data.

WebDriver driver = new ChromeDriver();

kaedah

Berikut ialah beberapa cara untuk mengendalikan borang web dinamik dalam Java menggunakan Selenium WebDriver.

  • Gunakan XPath

  • Menggunakan pemilih CSS

Kaedah 1: Menggunakan XPath

XPath ialah bahasa yang elegan dan berkuasa untuk mencari elemen dalam dokumen XML, termasuk tapak web. XPath amat berharga apabila bekerja dengan borang web dinamik menggunakan Selenium WebDriver dan Java.

Untuk memproses borang web dinamik dengan berkesan, anda perlu menyemak strukturnya terlebih dahulu dan mengenal pasti sifat atau corak individu yang boleh berfungsi sebagai blok binaan untuk ekspresi XPath. Dengan menggunakan fungsi seperti position(), contains(), atau starts-with(), anda boleh mengendalikan perubahan baris atau lajur dan menyesuaikan diri dengan halaman web yang berbeza.

Setelah ungkapan XPath anda selesai, WebDriver menyediakan kaedah findElement() atau findElements(), yang menggunakan ungkapan sebagai pencari dan membenarkan interaksi yang cekap dengan kandungannya

Algoritma

  • Cari dan kenal pasti struktur dan elemen borang web dinamik yang ingin anda akses.

  • Semak sebarang atribut atau corak unik yang boleh membantu mencipta ungkapan XPath untuk mencari elemen yang dikehendaki.

  • Buat ungkapan XPath berdasarkan atribut atau corak yang dikenal pasti.

  • Instantiate contoh WebDriver dan navigasi ke tapak web yang mengehos jadual dinamik.

  • Gunakan kaedah findElements() WebDriver untuk lulus dalam ungkapan XPath sebagai pencari

  • Dapatkan semula elemen yang sepadan dengan ungkapan XPath sebagai senarai

  • Menyemak imbas senarai elemen membolehkan pengguna mengakses data yang diperlukan atau melakukan tindakan yang diingini.

  • Kendalikan sebarang pengecualian atau ralat yang berlaku sepanjang proses

  • Selepas anda selesai menggunakan borang web dinamik, tutup WebDriver untuk menutup

Contoh

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

public class DynamicWebTableExample {
   public static void main(String[] args) {
      // Set up ChromeDriver path
      System.setProperty("webdriver.chrome.driver", "path/to/chromedriver");

      // Create ChromeDriver instance
      WebDriver driver = new ChromeDriver();

      // Open the webpage
      driver.get("https://www.techlistic.com/2017/02/automate-demo-web-table-with-selenium.html");

      // Locate the table element
      WebElement table = driver.findElement(By.xpath (//*[@id="post-body-1325137018292710854"]/div[1]/div[1]/div[5]/table/thead/tr/th[1]"));

      // Find all rows in the table
      List<WebElement> rows = table.findElements(By.xpath(".//tr"));

      // Iterate through each row and print cell values
      for (WebElement row : rows) {
         List<WebElement> cells = row.findElements(By.xpath(".//td"));
         for (WebElement cell : cells) {
            String cellText = cell.getText();
            System.out.println(cellText);
         }
      }

      // Close the browser
      driver.quit();
   }
}

Sila ambil perhatian bahawa "path/to/chromedriver" mesti digantikan dengan lokasi sebenar ChromeDriver boleh laku pada sistem anda.

Output

Structure
Country
City
Height
Built	
Rank
…
Burj Khalifa	
UAE	
Dubai	
829m	
2010	
1	
Clock Tower Hotel	
Saudi Arabia	
Mecca	
601m	
2012	
2	
Taipei 
101	
Taiwan	
Taipei	
509m	
2004	
3	
Financial Center	
China	
Shanghai	
492m	
2008	
4	

Cara menggunakan pemilih CSS

Pemilih CSS menyediakan cara yang cekap untuk mencari elemen dengan cepat apabila bekerja dengan borang web dinamik menggunakan Selenium WebDriver dan Java. Dengan memerhatikan struktur jadual dengan teliti, anda boleh mengenal pasti atribut atau corak tertentu yang boleh disasarkan menggunakan pemilih CSS, seperti nama kelas, jenis elemen atau nilai atribut semuanya boleh membantu! untuk akses mudah kepada elemen. Kaedah

WebDriver's findElement() atau findElements() menyediakan cara yang cekap untuk mencari elemen dalam jadual web dinamik dengan menghantar pemilih CSS sebagai elemen pencari dan membolehkan anda berinteraksi dengan cekap dengan elemen Diperlukan untuk berinteraksi dengan

Algoritma

  • Gunakan pemilih CSS untuk mencari atribut atau corak unik dalam struktur jadual web dinamik.

  • Buat pemilih CSS berdasarkan sifat atau corak yang dikenal pasti.

  • Inisialisasikan Pemacu Web dan navigasi ke tapak web dengan borang web dinamik.

  • Gunakan kaedah findElements() WebDriver dan gunakan pemilih CSS sebagai pencari untuk menggunakan fungsi findElements()nya

  • Dapatkan senarai elemen yang sepadan dengan pemilih CSS secepat dan seefisien mungkin

  • Semak imbas senarai elemen untuk mengakses maklumat yang anda perlukan atau lakukan langkah yang anda mahu

  • Kendalikan sebarang pengecualian atau ralat yang berlaku semasa proses

  • 完成动态网页表格的工作后,关闭WebDriver。

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

public class DynamicWebTableExample {
   public static void main(String[] args) {
      // Set up ChromeDriver path
      System.setProperty("webdriver.chrome.driver", "path/to/chromedriver");

      // Create ChromeDriver instance
      WebDriver driver = new ChromeDriver();

      // Open the webpage
      driver.get("https://www.techlistic.com/2017/02/automate-demo-web-table-with-selenium.html");

      // Locate the table element
      WebElement table = driver.findElement(By.cssSelector("tsc_table_s13"));

      // Find all rows in the table
      List<WebElement> rows = table.findElements(By.cssSelector("tr"));

      // Iterate through each row and print cell values
      for (WebElement row : rows) {
         List<WebElement> cells = row.findElements(By.cssSelector("td"));
         for (WebElement cell : cells) {
            String cellText = cell.getText();
            System.out.println(cellText);
         }
      }

      // Close the browser
      driver.quit();
   }
}

输出

Structure
Country
City
Height
Built	
Rank
…
Burj Khalifa	
UAE	
Dubai	
829m	
2010	
1	
Clock Tower Hotel	
Saudi Arabia	
Mecca	
601m	
2012	
2	
Taipei 
101	
Taiwan	
Taipei	
509m	
2004	
3	
Financial Center	
China	
Shanghai	
492m	
2008	
4

结论

在本教程中,我们已经看到,在Java中使用Selenium WebDriver管理动态Web表格是Web自动化和数据提取任务中的关键技能。通过使用XPath或CSS选择器等定位器,开发人员可以快速定位表格元素,并有效地导航行和列以提取相关数据。

动态网页表格使得能够高效处理大量的信息,并根据特定条件采取适当的行动,提取有价值的数据以供进一步分析、存储或验证。通过正确理解和执行Java中的Selenium WebDriver,开发人员能够在使用Selenium WebDriver自动化各种工作流程时有效地处理动态表格-通过Selenium WebDriver自动化数据驱动的工作流程

Atas ialah kandungan terperinci Bagaimana untuk mengendalikan borang web dinamik menggunakan Selenium WebDriver di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam