2 回答
TA贡献1852条经验 获得超7个赞
不完全确定您在问什么,但也许这些 XPath 之一会有所帮助......
这个 XPath 表达式,
count(/tr/th[.="GIRAFFE"]/preceding-sibling::th)+1
将评估为
4
表示 GIRAFFEth
元素是第 4 个th
兄弟元素。
这个 XPath,
/tr/th[.="GIRAFFE"]
将根据其内容选择 GIRAFFE th
。
这个 XPath,
/tr/th[.="CHEETAH"]/following-sibling::th[1]
将th
凭借其在猎豹之后的地位选择长颈鹿th
。
TA贡献2012条经验 获得超12个赞
如果您想通过行中的标题文本选择列元素并在 Selenium 中使用它,这里有一些示例:
HTML 示例:
<table>
<thead>
<tr>
<th>LION</th>
<th>TIGER</th>
<th>CHEETAH</th>
<th>GIRAFFE</th>
<th>BEAR</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<td>5</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<td>5</td>
</tr>
</tbody>
</table>
用于 Selenium 的 XPATH:
//table/tbody/tr/td[count(//table//th[.="GIRAFFE"]/preceding::th)+1]
Selenium Java 使用示例:
String animalName = "GIRAFFE";
WebElement element = driver.findElement(By.xpath("//table/tbody/tr/td[count(//table//th[.='" + animalName + "']/preceding::th)+1]"));
WebElement animalElementFromRow1 = driver.findElement(By.xpath("//table/tbody/tr[1]/td[count(//table//th[.='" + animalName + "']/preceding::th)+1]"));
WebElement animalElementFromRow2 = driver.findElement(By.xpath("//table/tbody/tr[2]/td[count(//table//th[.='" + animalName + "']/preceding::th)+1]"));
添加回答
举报