动态网络表行存储,搜索和使用java webdriver处理



有几种解决方案,但没有哈希映射和枚举。

网站表元素简单 tbody, tr,td.下面的代码,我在行列表中有webelements,或者在另一个列表中将行数据作为字符串。

List<WebElement> rows = table.findElements(By.tagName("tr"));
List<ArrayList<String>> rowsData = new ArrayList<ArrayList<String>>();
for(WebElement row:rows){
List<WebElement> rowElements = row.findElements(By.tagName("td"));
ArrayList<String> rowData = new ArrayList<String>();
for(WebElement column:rowElements){
rowData.add(column.getText().toString());
}
rowsData.add(rowData);
}

一行可以是: 12、AB、苹果、红、-1000; 66,空调,葡萄,蓝色,1000;等。

我必须检查所有行并找到第一行是红色的,苹果和最后一行不大于 0 并单击。

更有用的选项可以是枚举和哈希映射。哈希映射键可以是枚举值,如 ID、名称、水果、颜色、数字。检查哈希图有颜色=红色,名称=苹果等。

有什么解决方案吗?我认为这对每个人都非常有用!

提前感谢!

你有没有想过将行创建为对象?所以像这样的事情

public class Fruit {
private String name;
private int id;
//go horizontally with your column names;
//have getters/setters here
}

现在你的代码可以写得稍微不同,比如,

List<WebElement> rows = table.findElements(By.tagName("tr"));
List<Fruit> fruits = new ArrayList<Fruit>();
for(WebElement row:rows){
List<WebElement> rowElements = row.findElements(By.tagName("td"));
Fruit fruit = new Fruit();
//you know first column is name or so on
//or store column header order and use it here
fruit.setName(rowElements.get(0).getText()); 
fruit.id(rowElements.get(1).getText());
fruits.add(fruit);
}

现在,您可以遍历fruits

最新更新