0

使用 xpath,我需要使用动态 id“选择”链接选择文本“level38a”。在 HTML 代码中,我看到包含 2<td>和文本"level38a""select".

PS:在我的应用程序中,我有 30 多个不同文本的“选择”链接。所以使用id="lnk_LEVEL_2449"效率不高。

我正在使用下面的代码来选择文本,但它没有单击选择按钮。

driver.findElement(By.xpath("//tr[td//a[@value='Select']]/td/a[contains(text(),'level38a')]"));`

HTML 片段

<tr>
    <td>
        <img class="imHeader" alt="" src="include/img/context/level_dash.gif">
        <img class="imHeader" alt="" src="include/img/context/icon_telco_level.gif">
        level38a
    </td>
    <td> </td>
    <td>
        <a id="lnk_LEVEL_2449" href="jfn?isLevel=true&level=L4%3A2449&mfunc=614&cfunc=615&oid=L4%3A2191&ctx=L&jfnRC=9">Select</a>
    </td>
</tr>
4

2 回答 2

1

此方法 driver.findElement(By.xpath("//tr[td//a[@value='Select']]/td/a[contains(text(),'level38a')]"));仅查找元素,不单击它。您必须添加 click() 操作。像这样:

driver.findElement(By.xpath("//tr[td//a[@value='Select']]/td/a[contains(text(),'level38a')]")).click();

编辑:我没有看过你的xpath。这是错误的。请尝试这些:

"//tr[td//a[contains(text(), 'Select')]]/td[contains(text(),'level38a')]"

要不就:

"//td[contains(text(), 'level38a')]"
于 2013-09-16T12:49:15.797 回答
0

使用下面的 xpath 来选择动态 ID,它工作正常。首先,它在页面中找到文本“level38a”,然后单击“选择”链接。

driver.findElement(By.xpath("//tr[td[contains(text(),'level38a')]]/td//a[contains(text(), 'Select')]")).click( );

于 2013-09-17T07:45:36.763 回答