繁体   English   中英

Selenium:如何点击具有onclick属性的javascript链接?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM