Heim  >  Artikel  >  Java  >  Wie gehe ich mit dynamischen Webformularen mit Selenium WebDriver in Java um?

Wie gehe ich mit dynamischen Webformularen mit Selenium WebDriver in Java um?

WBOY
WBOYnach vorne
2023-09-05 22:53:02728Durchsuche

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

Der Umgang mit dynamischen Webformularen ist oft eine der größten Hürden beim Testen der Webautomatisierung. Verwenden Sie Selenium WebDriver, um Browser effizient zu automatisieren. Trotz seines leistungsstarken Funktionsumfangs für die Interaktion mit Website-Elementen erfordert die Verarbeitung dynamischer Tabellen zusätzliche Techniken, um Daten effizient zu extrahieren und zu lokalisieren. In diesem Fall bietet Java verschiedene Methoden, um die nahtlose Verarbeitung dynamischer Tabellen zu unterstützen.

Dank der Anpassungsfähigkeit und Funktionalität von Selenium WebDriver in Java sind Tester in der Lage, dynamische Webtabellen effektiv zu nutzen, indem sie Interaktionen zwischen Zellen oder Zeilen effizient und genau automatisieren. In diesem Tutorial werden wir Strategien und Best Practices für die Arbeit mit dynamischen Tabellen mit Selenium WebDriver behandeln, insbesondere wie man mit Selenium WebDriver effizient und genau durch dynamische Tabellen navigiert.

Selenium WebDriver

Selenium WebDriver ist eine immer beliebter werdende Java-Bibliothek zur Automatisierung von Webbrowsern. Mit einer leistungsstarken API zur Interaktion mit Website-Elementen, zur Durchführung von Aktionen und zum Abrufen von Informationen von Seiten bietet Selenium WebDriver eine leistungsstarke Lösung zur Automatisierung von Browsersitzungen.

Um Java mit Selenium WebDriver zu verwenden, müssen Sie zunächst die entsprechende ausführbare Treiberdatei für jeden Webbrowser (Chrome/Firefox usw.) zusammenstellen und die Selenium-Abhängigkeit zu Ihrem Projekt hinzufügen.

Sobald die Konfiguration abgeschlossen ist, können Sie eine Instanz der WebDriver-Schnittstelle erstellen und ein Webbrowser-Fenster starten. Von hier aus können Sie mit Methoden wie findElement() und sendKeys() zu verschiedenen URLs navigieren und Aktionen wie Klicken, Absenden eines Formulars oder Extrahieren von Daten ausführen.

WebDriver driver = new ChromeDriver();

Methode

Hier sind einige Möglichkeiten, dynamische Webformulare in Java mit Selenium WebDriver zu verarbeiten.

  • Verwenden Sie XPath

  • Verwendung von CSS-Selektoren

Methode 1: XPath verwenden

XPath ist eine elegante und leistungsstarke Sprache zum Suchen von Elementen in XML-Dokumenten, einschließlich Websites. XPath ist besonders wertvoll, wenn Sie mit dynamischen Webformularen mit Selenium WebDriver und Java arbeiten.

Um dynamische Webformulare effektiv zu verarbeiten, untersuchen Sie zunächst deren Struktur und identifizieren Sie einzelne Eigenschaften oder Muster, die als Bausteine ​​für XPath-Ausdrücke dienen können. Durch die Verwendung von Funktionen wie position(), contains() oderstarts-with() können Sie mit sich ändernden Zeilen oder Spalten umgehen und sich an verschiedene Webseiten anpassen.

Sobald Ihr XPath-Ausdruck vollständig ist, stellt WebDriver die Methoden findElement() oder findElements() bereit, die den Ausdruck als Locator verwenden und eine effiziente Interaktion mit seinem Inhalt ermöglichen

Algorithmus

  • Suchen und identifizieren Sie die Struktur und Elemente dynamischer Webformulare, auf die Sie zugreifen möchten.

  • Suchen Sie nach eindeutigen Attributen oder Mustern, die bei der Erstellung eines XPath-Ausdrucks zum Auffinden des gewünschten Elements helfen können.

  • Erstellen Sie XPath-Ausdrücke basierend auf identifizierten Attributen oder Mustern.

  • Instanziieren Sie eine WebDriver-Instanz und navigieren Sie zu der Website, auf der sich die dynamische Tabelle befindet.

  • Verwenden Sie die findElements()-Methode von WebDriver und übergeben Sie den XPath-Ausdruck als Locator

  • Elemente, die einem XPath-Ausdruck entsprechen, als Liste abrufen

  • Das Durchsuchen einer Liste von Elementen ermöglicht es dem Benutzer, auf die erforderlichen Daten zuzugreifen oder die gewünschte Aktion auszuführen.

  • Behandeln Sie alle Ausnahmen oder Fehler, die während des Prozesses auftreten

  • Wenn Sie mit der Verwendung dynamischer Webformulare fertig sind, schließen Sie WebDriver, um es zu schließen

Beispiel

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();
   }
}

Bitte beachten Sie, dass „Pfad/zu/chromedriver“ durch den tatsächlichen Speicherort der ausführbaren ChromeDriver-Datei auf Ihrem System ersetzt werden muss.

Ausgabe

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	

So verwenden Sie CSS-Selektoren

CSS-Selektoren bieten eine effiziente Möglichkeit, Elemente schnell zu finden, wenn Sie mit dynamischen Webformularen mit Selenium WebDriver und Java arbeiten. Durch sorgfältiges Beobachten der Struktur der Tabelle können Sie bestimmte Attribute oder Muster identifizieren, auf die mithilfe von CSS-Selektoren abgezielt werden kann, z. B. Klassennamen, Elementtypen oder Attributwerte. Dies alles kann hilfreich sein! für einfachen Zugriff auf Elemente. Die findElement()- oder findElements()-Methode von

WebDriver bietet eine effiziente Möglichkeit, Elemente in dynamischen Webtabellen zu finden, indem CSS-Selektoren als Locator-Elemente übergeben werden, und ermöglicht Ihnen eine effiziente Interaktion mit den erforderlichen Elementen

Algorithmus

  • Verwenden Sie CSS-Selektoren, um auf einzigartige Attribute oder Muster in dynamischen Webtabellenstrukturen abzuzielen.

  • Erstellen Sie CSS-Selektoren basierend auf identifizierten Eigenschaften oder Mustern.

  • Initialisieren Sie WebDriver und navigieren Sie mit dynamischen Webformularen zur Website.

  • Verwenden Sie die findElements()-Methode von WebDriver und verwenden Sie CSS-Selektoren als Locators, um die findElements()-Funktionalität zu nutzen

  • Rufen Sie so schnell und effizient wie möglich eine Liste von Elementen ab, die einem CSS-Selektor entsprechen

  • Durchsuchen Sie die Liste der Elemente, um auf die benötigten Informationen zuzugreifen oder die erforderlichen Schritte auszuführen

  • Behandeln Sie alle Ausnahmen oder Fehler, die während des Prozesses auftreten

  • 完成动态网页表格的工作后,关闭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自动化数据驱动的工作流程

Das obige ist der detaillierte Inhalt vonWie gehe ich mit dynamischen Webformularen mit Selenium WebDriver in Java um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen