Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html Selenium webdriver-如何选择动态ID';谁在使用xpath?_Html_Xpath_Selenium - Fatal编程技术网

Html Selenium webdriver-如何选择动态ID';谁在使用xpath?

Html Selenium webdriver-如何选择动态ID';谁在使用xpath?,html,xpath,selenium,Html,Xpath,Selenium,使用xpath,我需要使用动态id“select”链接选择文本“level38a”。在HTML代码中,我看到包含2个,文本为“level38a”和“select” 在我的应用程序中,我有30多个不同文本的“选择”链接。因此,使用id=“lnk\u LEVEL\u 2449”是没有效率的 我使用下面的代码来选择文本,但它没有单击选择按钮 driver.findElement(By.xpath("//tr[td//a[@value='Select']]/td/a[contains(text(),'l

使用xpath,我需要使用动态id“select”链接选择文本“level38a”。在HTML代码中,我看到包含2个
,文本为
“level38a”
“select”

在我的应用程序中,我有30多个不同文本的“选择”链接。因此,使用
id=“lnk\u LEVEL\u 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>

38A级
此方法
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')]"

使用下面的xpath选择动态ID,效果很好。首先,它在页面中找到文本“level38a”,然后单击“选择”链接


driver.findElement(By.xpath(//tr[td[contains(text(),'level38a')]]]/td//a[contains(text(),'Select')])。单击()

它不起作用。获取以下错误,无法定位元素:{“method”:“xpath”,“selector”:“//tr[td//a[@value='Select']]]/td/a[contains(text(),'ShapeCSR')]”},这可能是因为它是“ShapeCSR”,而不是“level38a”?@MrTi:这没关系。因为我有不同的文本,比如ShapeCSR,level38a等等。。。在主代码中,我以字符串形式传递文本,driver.findElement(By.xpath(//tr[td//a[contains(text(),'Select')]]/td[contains(text(),“+weeklyLevelName+”)])@罗伯特:我尝试了您建议的xpath(//tr[td//a[contains(text(),'Select')]]/td[contains(text(),'level38a')])。能够找到页面上的文本。一旦文本被定位,我需要点击“选择”链接,但它不会发生。我试着在末尾添加click(),但没有帮助。有什么建议吗?