首页 > 解决方案 > 无法通过 XPath 选择 html td 链接按钮

问题描述

我正在使用的网络元素:

<td>
<div class="linkButton" onclick="window.open('../../Report/Reports/ViewReport.aspx?reportName=Revenue.Report','Report1','scrollbars=1,resizable=yes,width=800,height=600');">Revenue Report</div>
</td>

这个元素应该点击链接并打开一个新窗口

driver.FindElementByXPath("XPath").Click();

我尝试了以下 XPath:

//td[contains(text(), 'Revenue Report')]

//*[contains(@onclick, 'Revenue.Report')]

两者都因“OpenQA.Selenium.NoSuchElementException:没有这样的元素:无法定位元素”而失败

是否有其他选择此 Web 元素的选项?

标签: htmlseleniumxpathselenium-chromedriver

解决方案


我已经在免费的在线 Xpath 测试站点中测试了这些,并且这些工作:

//div[contains(text(), 'Revenue Report')]
//div[text()= 'Revenue Report']
//td/div[text()= 'Revenue Report']

这也适用于您的建议:

//*[contains(@onclick, 'Revenue.Report')]

当我测试您的第一个建议时,我收到错误:

//td[contains(text(), 'Revenue Report')]

不允许将多个项目的序列作为 contains() ("", "") 的第一个参数


推荐阅读