首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用Python Selenium单击动态链接

无法使用Python Selenium单击动态链接
EN

Stack Overflow用户
提问于 2021-05-22 05:22:46
回答 2查看 66关注 0票数 1

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

代码语言:javascript
复制
<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

代码语言:javascript
复制
driver.find_element_by_xpath("//a/*[contains(text(), '3-3-2')]").click()

选项2

代码语言:javascript
复制
driver.find_element_by_xpath("//a[contains(@onclick, '3-3-2')]").click()

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

代码语言:javascript
复制
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)

我非常感谢任何关于这个问题的反馈。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-08-26 21:51:09

我能够解决我的问题。我添加了switch_to.frame代码,并将find_element_by_xpath路径替换为链接的完整xpath。

下面是供任何人参考的最终代码:

代码语言:javascript
复制
driver.switch_to.frame(driver.find_element_by_tag_name("iframe"))

driver.find_element_by_xpath("/html/body/div/table/tbody/tr/td/form[1]/table/tbody/tr[2]/td/table/tbody/tr[2]/td/table/tbody/tr/td/table/tbody/tr[4]/td[2]/div/font/a").click()
票数 0
EN

Stack Overflow用户

发布于 2021-05-22 05:36:10

尝试使用attribute CSS selectora[onclick*='3-3-2'],它将查找具有包含'3-3-2'的属性onclicka标记。

代码语言:javascript
复制
driver.find_element_by_css_selector("a[onclick*='3-3-2']").click()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67643975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档