0

我正在使用包含表格的 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 选择器?请提出问题以进行澄清。非常感谢您对此有所了解。

4

1 回答 1

1

据我所知:contains,CSS 不支持选择器。要根据文本内容选择元素,您应该改用 XPath。

于 2012-04-09T17:57:09.137 回答