gpt4 book ai didi

java - 如何迭代表以查找所有值

转载 作者:太空宇宙 更新时间:2023-11-04 13:39:04 25 4
gpt4 key购买 nike

我正在尝试提取并打印与 @class='Grp' 属性关联的所有值。根据 HTML,该属性在表中出现两次。使用我的代码,我可以找到并打印文本 1 值,但无法获取文本 2 值。我认为 for 循环是问题所在,但不知道如何解决。

WebElement table = driver.findElement(By.id("Table"));
WebElement tbody = table.findElement(By.tagName("tbody"));
WebElement tr = tbody.findElement(By.tagName("tr"));
List<WebElement> rows = tr.findElements(By.tagName("td"));
logger.info("number of rows: " +rows.size());
ArrayList<String> list = new ArrayList<>();

for (int i=0; i<rows.size();i++)
{
WebElement heading = table.findElement(By.xpath("//*[@class='Grp']"));
if (heading.getText().trim().contains("Text"))
{
logger.info("text: " +heading.getText().trim());
list.add(heading.getText().trim());
}

HTML

<table id="Table" width="100%" cellspacing="0" cellpadding="0" border="0">
<thead class="Head">
<tbody>
<tr style="height:30px">
<td class="Grp" style="background-color:#686890;white-space:nowrap" colspan="99">Text 1</td>
</tr>
</tbody>
<tbody>
<tr style="height:30px">
<td class="Grp" style="background-color:#686890;white-space:nowrap" colspan="99">Text 2</td>
</tr>
</tbody>

最佳答案

你可以这样做:

List<WebElement> rows = driver.findElements(By.className("Grp"));
logger.info("number of rows: " +rows.size());
ArrayList<String> list = new ArrayList<>();

for (WebElement row : rows)
{
if (row.getText().trim().contains("Text"))
{
logger.info("text: " + row.getText().trim());
list.add(row.getText().trim());
}
}

关于java - 如何迭代表以查找所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31394877/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com