[英]Selenium : how to click on javascript link having onclick attribute?
我怎样才能找到这个元素并点击链接? 这是一个 hover 按钮,旨在导出数据。
<a class="ActiveLink" title="Excel" alt="Excel" onclick="$find('ReportViewerControl').exportReport('EXCELOPENXML');" href="javascript:void(0)">Excel</a>
我试过:
driver.find_element(By.XPATH, "//a[@title='Excel']").click()
driver.find_element(By.CSS_SELECTOR, "a.ActiveLink[@title='Excel']").click()
但他们都没有工作。 谢谢你的帮助。
我不知道为什么你尝试的方法不起作用,你没有分享你的 Selenium 代码。
根据此处共享的元素 HTML - 基于onclick
属性尝试通过以下方式之一单击它:
driver.find_element(By.XPATH, "//a[@title='Excel'][contains(@onclick,'ReportViewerControl')]").click()
要么
driver.find_element(By.XPATH, "//a[@title='Excel'][contains(@onclick,'EXCELOPENXML')]").click()
可以创建更多定位器,但同样,点击可能不起作用,因为定位器不是唯一的,或者元素可能被隐藏、重叠、可见视口之外或仍未加载……我们无法根据您的情况知道到目前为止在 ypur 问题中共享。
此外,由 XPath 定义的定位器可以使用 CSS 选择器完成,反之亦然(在大多数情况下)。
在不知道实际的 URL 和站点的情况下,很难查明问题所在,但另一种常见的替代方法是直接使用execute_script
function 执行脚本,如下所示
driver.execute_script('$find('ReportViewerControl').exportReport('EXCELOPENXML');')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.