處理動態Web表格通常是Web自動化測試中最大的障礙之一,使用Selenium WebDriver可以有效地自動化瀏覽器。儘管其強大的功能集可以與網站元素進行交互,但處理動態表格需要額外的技術,以便有效地提取和定位資料;在這種情況下,Java提供了各種方法來幫助無縫處理動態表格。
使用Selenium WebDriver在Java中的適應性和功能,測試人員能夠透過有效且準確地自動化單元格或行之間的交互,有效地利用動態網頁表格。在本教程中,我們將介紹使用Selenium WebDriver處理動態表格的策略和最佳實踐;特別是關於如何透過Selenium WebDriver高效和準確地導航動態表格。
Selenium WebDriver
Selenium WebDriver是一個越來越受歡迎的Java庫,專為自動化網頁瀏覽器而設計。具有強大的API可以與網站元素進行互動、執行操作以及從頁面中獲取信息,Selenium WebDriver為自動化瀏覽器會話提供了強大的解決方案。
要使用Java與Selenium WebDriver,首先需要為每個Web瀏覽器(Chrome/Firefox等)組裝適當的驅動程式可執行文件,並將Selenium依賴項新增至您的專案中。
一旦設定完成,您可以建立WebDriver介面的實例並啟動一個網頁瀏覽器視窗。從這裡,您可以使用findElement()和sendKeys()等方法導航到不同的URL,還可以執行點擊、提交表單或提取資料等操作。
WebDriver driver = new ChromeDriver();
方法
以下是使用Selenium WebDriver在Java中處理動態Web表格的幾種方法。
使用XPath
使用CSS選擇器
方法1:使用XPath
XPath 是一種優雅而強大的語言,用於在包括網站在內的 XML 文件中尋找元素。在使用 Selenium WebDriver 和 Java 處理動態網頁表格時,XPath 尤其有價值。
要有效處理動態Web表格,首先要對其結構進行檢查,並識別出可以作為XPath表達式建構塊的個別屬性或模式。透過使用position()、contains()或starts-with()等函數,您可以處理不斷變化的行或列,適應不同的網頁。
一旦您的XPath表達式完成,WebDriver提供findElement()或findElements()方法,這些方法使用該表達式作為定位器,並允許高效地與其內容進行交互
演算法
定位並識別您希望造訪的動態網頁表格的結構和元素。
檢查任何可以協助建立XPath表達式以定位所需元素的唯一屬性或模式。
根據已確定的屬性或模式建立XPath表達式。
實例化一個WebDriver實例並導航到託管動態表的網站。
使用WebDriver的findElements()方法,將XPath表達式作為定位器傳入
將與XPath表達式相符的元素作為清單檢索
瀏覽元素清單使用戶能夠存取所需的資料或執行所需的操作。
處理在整個過程中出現的任何異常或錯誤
完成使用動態網頁表格後,關閉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.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(); } }
請注意,"path/to/chromedriver" 必須替換為您系統上 ChromeDriver 執行檔的實際位置。
輸出
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
使用CSS選擇器的方法
CSS選擇器為在使用Selenium WebDriver和Java處理動態Web表格時快速定位元素提供了有效的方法。透過仔細觀察表格的結構,您可以識別出可以使用CSS選擇器定位的特定屬性或模式,例如類別名稱、元素類型或屬性值都可以幫助您!以便輕鬆存取元素。
WebDriver的findElement()或findElements()方法透過將CSS選擇器作為定位器元素傳入,為在動態Web表格中尋找元素提供了高效的方法,並允許您有效地與所需元素進行交互
演算法
利用CSS選擇器來定位動態網頁表格結構中的唯一屬性或模式。
基於已確定的屬性或模式建立CSS選擇器。
初始化WebDriver並導航到具有動態Web表格的網站。
使用WebDriver的findElements()方法,並使用CSS選擇器作為定位器,以使用其findElements()功能
盡快且有效率地檢索與CSS選擇器相符的元素列表
瀏覽元素清單以存取所需的資訊或執行所需的步驟
處理在過程中出現的任何異常或錯誤
完成动态网页表格的工作后,关闭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自动化数据驱动的工作流程
以上是如何使用Java中的Selenium WebDriver處理動態Web表格?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文討論了使用Maven和Gradle進行Java項目管理,構建自動化和依賴性解決方案,以比較其方法和優化策略。

本文使用Maven和Gradle之類的工具討論了具有適當的版本控制和依賴關係管理的自定義Java庫(JAR文件)的創建和使用。

本文討論了使用咖啡因和Guava緩存在Java中實施多層緩存以提高應用程序性能。它涵蓋設置,集成和績效優勢,以及配置和驅逐政策管理最佳PRA

本文討論了使用JPA進行對象相關映射,並具有高級功能,例如緩存和懶惰加載。它涵蓋了設置,實體映射和優化性能的最佳實踐,同時突出潛在的陷阱。[159個字符]

Java的類上載涉及使用帶有引導,擴展程序和應用程序類負載器的分層系統加載,鏈接和初始化類。父代授權模型確保首先加載核心類別,從而影響自定義類LOA


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

Dreamweaver Mac版
視覺化網頁開發工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。