我正在尝试使用Selenium在JavaScript表中选择动态链接。下面是我尝试单击的其中一个链接的HTML代码示例:
<a href="#" onclick="javascript: runCategoryReport(0,"objectName=enrollee&titleMessageKey=3-3-2&time=month&systemTypeMetaId=6&categoryName=Attendee");">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)我非常感谢任何关于这个问题的反馈。
发布于 2021-08-26 21:51:09
我能够解决我的问题。我添加了switch_to.frame代码,并将find_element_by_xpath路径替换为链接的完整xpath。
下面是供任何人参考的最终代码:
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()发布于 2021-05-22 05:36:10
尝试使用attribute CSS selector:a[onclick*='3-3-2'],它将查找具有包含'3-3-2'的属性onclick的a标记。
driver.find_element_by_css_selector("a[onclick*='3-3-2']").click()https://stackoverflow.com/questions/67643975
复制相似问题