我的问题与此How to find specific lines in a table using Selenium?类似,只是表行可以按随机顺序排列,我想从特定行中找到具有修复column1值的特定值。即如果公司=" abc"则查找预算。公司" abc"可以出现在表格的任何行中。
示例:
column1:column2:column3
company1:value1:value2:
company2:value1:value2
在这里,我想为company2找到value2。 company2可以出现在表格的任何地方。
答案 0 :(得分:1)
您可以尝试使用xpath定位器。
用于下表结构
<table>
<tr> <td> company2</td> <td> value1</td> <td> value2</td> </tr>
</table>
Xpath的
"//td[text()='company2']/following-sibling::td[text()='value2']"
By.xpath("//td[text()='company2']/following-sibling::td[text()='value2']");
编辑我
从td获取文本,你可以使用相同的索引
driver.findElement(By.xpath("//td[text()='company2']/following-sibling::td[2]")).getText();
答案 1 :(得分:0)
感谢SantoshSharma。我会尝试这个。它看起来简短。
普鲁斯&amp; Santosh - 截至目前,我尝试了以下代码,它对我有用。java.util.List tableRows = baseTable.findElements(By.tagName(&#34; tr&#34;));
for (WebElement row : tableRows) {
String companyNameXPath = "td[2]";
WebElement companyName = row.findElement(By.xpath(companyNameXPath));
if (companyName.getText().equals(company)) {
valueString = row.findElement(By.xpath("td[4]")).getText();
break;
}
}