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

发布于 2024-11-07 08:33:11 字数 167 浏览 0 评论 0原文

假设我有一个表包含未知的行数。经验值 列 1 列 2 列 3 xxx yyy“搜索配置文件”

每行的第 3 列都包含一个“搜索配置文件”链接,现在很明显,该链接的 xpath 将根据该行而变化。现在我想搜索第 2 列中的字符串,如果存在,则需要单击它的第 3 列链接。 有人可以告诉我如何搜索并点击它吗?

Say i have a table contains nos of rows which is not known. exp
column1 column2 column3
xxx yyy "Search Profile"

Column3 for each row contains a Link "Search Profile" now it's clear here that xpath of this link will be changing according to the row. now i want to search a string in column 2 and if present then needs to click it's column3 link.
Can anybody please let me know how to search and click it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

痴情 2024-11-14 08:33:11

给定这样的页面:

<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”的第一个实例且完全匹配。然后它返回到该行并瞄准(并单击)第三列。

Given a page like this:

<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>

You could locate the correct value by using XPATH to first find the name of the user. Then relative to that name you could target the third column relative to the found name in the table.

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

In this example it finds the first instance of and exact match of 'Jane' in the second column. Then it backs up to the row and targets (and clicks on) the third column.

未蓝澄海的烟 2024-11-14 08:33:11

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

大致如下:

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

I'd suggest using selenium.click and giving it the target you're looking for. If you know what text you're searching for in the column 2, you can put that in an XPath expression and click on his friend in column 3.

Something along the lines of :

selenium.click("//table[@id='yourTableID']/descendant::tr[td[.='"column2text"']]/td[3]/button);
烟花肆意 2024-11-14 08:33:11
  1. 对生成的表中的行进行计数。 int RolesTableRowCount = selenium.getXpathCount("//table[@id='your_table_id']/tbody/tr").intValue();
  2. 如果计数符合您的预期结果,您可以存储文本在特定的单元格中。 String var = selenium.getText("element_locator");
  3. 检查 var 的内容是否与您的测试字符串匹配。
  4. 如果确实如此,请单击第 3 列中的“搜索个人资料”链接。
  1. Do a count of rows in the generated table. int rolesTableRowCount = selenium.getXpathCount("//table[@id='your_table_id']/tbody/tr").intValue();
  2. If the count meets your expected result, you could store the text in a specific cell. String var = selenium.getText("element_locator");
  3. Check if the contents of var matches your test string.
  4. If it does click the "Search Profile" link in Column 3.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文