我正在使用包含表格的 Selenium IDE 测试网页。我想通过 CSS 选择器验证表格单元格(行、列)中的文本。表格的 HTML 结构非常简单。这是一个表格示例,其中每一行代表一个人的不同属性:
<html...>
<head>
</head>
<body>
<div class="pageBody">
<table>
<tbody>
<tr>
<td></td>
<td>AGE</td>
<td>49</td>
</tr>
<tr>
<td></td>
<td>WEIGHT</td>
<td>165</td>
</tr>
... and so on
在 Selenium IDE 中,我可以使用以下 CSS 选择器在包含 AGE 的表行中找到“49”:
(方法 1) css=#pageBody 表 tbody tr:nth-child(1) td:nth-child(3)
但是,如果我不确定每个表的行数是否相同(如果基于每个人可用的数据动态创建表),我可以将伪选择器从 nth-child 更改为包含:
(方法 2) css=#pageBody table tbody tr:contains('AGE') td:nth-child(3)
当我将这些方法导出为 JUnit 代码时,问题就来了。以下 JUnit 代码块有效:
(使用方法 1 )
WebDriver.findElement (By.cssSelector ("#pageBody table tbody tr:nth-child(1) td:nth-child(3)"))
以下 JUnit 代码块失败的地方:
(使用方法 2 )
WebDriver.findElement (By.cssSelector ("#pageBody table tbody tr:contains('AGE') td:nth-child(3)"))
有谁知道为什么 JUnit APPROACH 2无法找到完全有效且在 Selenium IDE 中运行良好的 CSS 选择器?请提出问题以进行澄清。非常感谢您对此有所了解。