首頁 > Java > java教程 > 主體

如何使用Java的Selenium WebDriver處理靜態網頁表格?

PHPz
發布: 2023-08-18 23:29:07
轉載
1190 人瀏覽過

如何使用Java的Selenium WebDriver处理静态网页表格?

在Java中使用Selenium WebDriver處理靜態網頁表格時,必須按照一系列的步驟來提取相關資料並操作表格元件。初始步驟涉及使用適當的標識符定位網頁上的表格。一旦定位到,可以透過HTML標籤(如和)存取各個行和列

透過迭代掃描每一行和每一列,可以提取和儲存來自網路表格的資料以供進一步處理。此外,還可以執行諸如點擊特定儲存格或驗證表格中特定資料存在性等操作。透過使用Se-lenium WebDriver和Java,可以更有效地使用自動化管理靜態網頁表格

Web Tables

的翻譯為中文是:

Web表格

#使用Selenium WebDriver在Java中處理網頁表格時,必須與網頁上的HTML表格互動。為了適當地定位表格元素,請使用適當的定位器。一旦定位到表格,使用`findElements()`方法檢索所有行,並透過循環遍歷它們。在此循環內再次使用`findElements()`方法存取每行的每個列。然後可以透過`getText()`或`getAttribute()`等方法來提取每個列的所需數據

WebDriver driver = new ChromeDriver();
登入後複製

方法

在Java中,使用Selenium WebDriver處理靜態網頁表格有多種技術可用。可以採用以下方法:

    使用HTML表格結構

  • 使用XPath軸

使用HTML表格結構

使用Selenium WebDriver和Java處理靜態網頁表格時,可以利用HTML表格結構方法。首先,透過其唯一識別碼或任何相關的HTML屬性來識別表格元素。一旦定位到表格,可以使用WebDriver命令提取表格行和列,並根據需要進行迭代。透過引用它們的行和列索引來檢索特定的單元格值

此外,您還可以執行與表格相關的操作,例如按列排序、篩選或搜尋特定資料。透過利用WebDriver的功能和Java編程,您可以有效地與靜態Web表格進行交互,提取資料並無縫執行各種操作

演算法

  • 使用WebDriver啟動網頁瀏覽器

  • 導覽至包含靜態網頁表的所需網頁

  • 使用適當的WebDriver指令(例如,透過ID、class、XPath等)定位表格元素

  • 透過在表格中找到所有的"tr"元素來提取表格行

  • 使用循環迭代遍歷行。

  • 在每一行中,根據需要提取表格單元格("td"元素)或標題單元格("th"元素)

  • 對單元格資料執行所需的操作(例如,檢索文本,驗證值等)

  • 可選地,在表格上執行其他操作,如排序、過濾或搜尋。

Example

的中文翻譯為:

範例

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

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

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

      // Find the table element
      WebElement tableElement = driver.findElement(By.tagName("table"));
      List<WebElement> rows = tableElement.findElements(By.tagName("tr"));

      // Iterate through each row
      for (WebElement rowElement : rows) {
         List<WebElement> cells = rowElement.findElements(By.tagName("td"));

         // Iterate through each cell in the row
         for (WebElement cellElement : cells) {
            String cellData = cellElement.getText();
            // Process the cell data as needed
            System.out.print(cellData + "\t");
         }

         // Move to the next line after processing each row
         System.out.println();
      }

      // Close the browser
      driver.quit();
   }
}
登入後複製

輸出

Google   Maria Anders        Germany
Meta     Francisco Chang     Mexico
Microsoft    Roland Mendel    Austria
Island Trading    Helen Bennett    UK
Adobe    Yoshi Tannamuri     Canada
Amazon   Giovanni Rovelli     Italy
登入後複製
登入後複製

使用Xpath軸

要使用Selenium WebDriver和Java處理靜態的網頁表格,您可以利用XPath軸,它提供了強大的方式來導航和與表格元素互動。透過利用XPath軸,您可以定位表格結構中的特定行、列或儲存格。在這種情況下,"ancestor"、"descendant"和"following-sibling"軸特別有用

例如,要提取表格行,您可以使用「//table//tr」 XPath 表達式。若要擷取行內的特定儲存格,您可以將行 XPath 與「td」軸結合使用,例如「//table//tr[position()=2]//td[position()=3]」。 XPath 軸在處理複雜的表格結構時提供了靈活性和精確性,使您能夠有效地處理靜態 Web 表格並準確提取所需數據

演算法

  • 使用WebDriver啟動網頁瀏覽器

  • 導覽至包含靜態網頁表的所需網頁

  • 根據它們的位置、屬性或內容建立適當的XPath表達式來定位表格、行、列或儲存格。

  • 使用XPath軸(如"ancestor"、"descendant"或"following-sibling")來遍歷表格結構並導航到所需的元素

  • 使用XPath表達式或透過組合軸與位置或屬性條件從表格單元格中提取所需資料。

  • 根據需要處理提取的資料(例如,將其儲存在變數中,執行斷言或輸出)

  • 根據需要,透過相應地調整XPath表達式,在表格上執行其他操作,例如排序、過濾或搜尋

  • 使用WebDriver指令關閉網頁瀏覽器會話

Example

的中文翻译为:

示例

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

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

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

      // Retrieve all cells of the table
      List<WebElementa>cells = driver.findElements(By.xpath("//table//tr//td"));

      // Iterate through each cell
      for (WebElement cell : cells) {
         String cellData = cell.getText();
         // Process the cell data as needed
         System.out.print(cellData + "\t");
      }

      // Close the browser
      driver.quit();
   }
}	
登入後複製

输出

Google   Maria Anders        Germany
Meta     Francisco Chang     Mexico
Microsoft    Roland Mendel    Austria
Island Trading    Helen Bennett    UK
Adobe    Yoshi Tannamuri     Canada
Amazon   Giovanni Rovelli     Italy
登入後複製
登入後複製

结论

在本教程中,我们学习到在使用Selenium WebDriver和Java处理静态网页表格时,有多种方法可以有效地处理它们。HTML表格结构方法允许您定位表格元素并使用适当的定位器(如By.tagName())迭代行和单元格。XPath轴方法通过使用XPath表达式在HTML结构中导航以找到所需的元素提供了灵活性。最后,CSS选择器提供了一种使用CSS选择器语法定位和操作表格元素的替代方法。

以上是如何使用Java的Selenium WebDriver處理靜態網頁表格?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!