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

2023年 8月 28日 75.7k 0

如何使用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启动Web浏览器

  • 导航到包含静态网页表的所需网页

  • 使用适当的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 rows = tableElement.findElements(By.tagName("tr"));

// Iterate through each row
for (WebElement rowElement : rows) {
List 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启动Web浏览器

  • 导航到包含静态网页表的所需网页

  • 根据它们的位置、属性或内容构建适当的XPath表达式来定位表格、行、列或单元格。

  • 使用XPath轴(如"ancestor"、"descendant"或"following-sibling")来遍历表格结构并导航到所需的元素

  • 使用XPath表达式或通过组合轴与位置或属性条件从表格单元格中提取所需数据。

  • 根据需要处理提取的数据(例如,将其存储在变量中,执行断言或输出)

  • 根据需要,通过相应地调整XPath表达式,在表格上执行其他操作,例如排序、过滤或搜索

  • 使用WebDriver命令关闭Web浏览器会话

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
Listcells = 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处理静态网页表格?的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论