我在下面的HTML表格中。
<table>
<tr>
<td>Link 1</td>
<td>Archieved</td>
</tr>
<tr>
<td>Link 2</td>
<td>Terminated</td>
</tr>
<tr>
<td>Link 3</td>
<td>Active</td>
</tr>
<tr>
<td>Link 4</td>
<td>Archieved</td>
</tr>
</table>
这里基本上我想循环遍历所有行,并且仅当第二行中的内容不包含Terminated
时才点击。
在XSLT中,我使用xsl:for-each select
,但在Selenium中,我无法理解如何执行此操作。请告诉我如何点击不包含Terminated
的行。
由于
答案 0 :(得分:2)
您可以使用单个XPath表达式过滤掉不包含“已终止”的行:
//tr[td[2] != 'Terminated']
以下是循环匹配选择器的元素的方法:
for(WebElement row: driver.findElements(By.xpath("//tr[td[2] != 'Terminated']"))) {
// do smth with a row
}
答案 1 :(得分:2)
以下是循环所有行的方法,单击那些不匹配的行&#34; Terminated&#34;作为文本,用其他行做任何你喜欢的事情:
List<WebElement> allRows = driver.findElements(By.xpath("//table/tr"))
for (WebElement row : allRows) {
if (!row.findElement(By.xpath("./td[2]")).getText().contains("Terminated")) {
row.click();
}
// get whatever you need from the rows here
}