首页 > 解决方案 > 无法使用 Python Selenium 单击动态链接

问题描述

我正在尝试使用 Selenium 在 JavaScript 表中选择动态链接。这是我尝试单击的链接之一的示例 HTML 代码:

<a href="#" onclick="javascript: runCategoryReport(0,&quot;objectName=enrollee&amp;titleMessageKey=3-3-2&amp;time=month&amp;systemTypeMetaId=6&amp;categoryName=Attendee&quot;);">1925</a>

我已经分别尝试了以下代码行来单击此特定链接:

选项1

driver.find_element_by_xpath("//a/*[contains(text(), '3-3-2')]").click()

选项 2

driver.find_element_by_xpath("//a[contains(@onclick, '3-3-2')]").click()

这两行代码都会导致错误:

NoSuchElementException: Message: no such element: Unable to locate element {"method":"xpath","selector":"//a/*[contains(text(), '3-3-2')]"} (Session info: chrome=90.0.4430.212)

NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//a[contains(@onclick, '3-3-2')]"}
  (Session info: chrome=90.0.4430.212)

我将不胜感激有关此问题的任何反馈。

标签: javascriptpythonpandasselenium-webdriver

解决方案


尝试使用属性 CSS 选择器: a[onclick*='3-3-2'],它将找到具有包含a的属性的标记。onclick'3-3-2'

driver.find_element_by_css_selector("a[onclick*='3-3-2']").click()

推荐阅读