使用xpath,我需要使用动态ID“select”链接选择文本“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>
答案 0 :(得分: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')]"
答案 1 :(得分:0)
使用下面的xpath选择动态ID,它运行正常。首先,它在页面中找到文本“level38a”,然后单击“选择”链接。
driver.findElement(By.xpath(“// tr [td [contains(text(),'level38a')]] / td // a [contains(text(),'Select')] “))。click();