Selenium RC:如何单击表格列中的项目

时间:2011-05-16 13:14:57

标签: selenium selenium-rc

假设我有一个包含许多行的表,这些行是未知的。 EXP column1 column2 column3 xxx yyy“搜索个人资料”

每行的Column3包含一个链接“搜索配置文件”,现在很清楚,此链接的xpath将根据该行进行更改。现在我想搜索第2列中的字符串,如果存在则需要单击它的column3链接。 有人可以告诉我如何搜索并点击它吗?

3 个答案:

答案 0 :(得分:3)

给出这样一个页面:

<html><head></head><body>
<table>
    <tbody>
        <tr>
            <td>Number</td>
            <td>Name</td>
            <td>Link</td>
        </tr>
        <tr>
            <td>1</td>
            <td>Tom</td>
            <td>Link</td>
        </tr>
        <tr>
            <td>2</td>
            <td>Jane</td>
            <td>Link</td>
        </tr>
        <tr>
            <td>3</td>
            <td>Jill</td>
            <td>Link</td>
        </tr>
    </tbody>
</table>
</body></html>

您可以使用XPATH找到正确的值,以便首先找到用户的名称。然后,相对于该名称,您可以相对于表中找到的名称来定位第三列。

selenium.click("//table/tbody/tr/td[text()='Jane']/parent::tr/td[3]")

在此示例中,它在第二列中找到“Jane”的第一个实例和完全匹配。然后它备份到行和目标(并点击)第三列。

答案 1 :(得分:0)

我建议使用selenium.click并将其提供给您正在寻找的目标。如果您知道要在第2列中搜索的文本,可以将其放在XPath表达式中,然后在第3列中单击他的朋友。

有些事情:

selenium.click("//table[@id='yourTableID']/descendant::tr[td[.='"column2text"']]/td[3]/button);

答案 2 :(得分:0)

  1. 在生成的表中执行行计数。 int rolesTableRowCount = selenium.getXpathCount("//table[@id='your_table_id']/tbody/tr").intValue();
  2. 如果计数符合您的预期结果,您可以将文本存储在特定单元格中。 String var = selenium.getText("element_locator");
  3. 检查var的内容是否与您的测试字符串匹配。
  4. 如果确实单击了第3列中的“搜索配置文件”链接。