Python Selenium:循环通过href';嵌入在<;李>;元素
我正在使用以下组织解析网页:Python Selenium:循环通过href';嵌入在<;李>;元素,python,html,selenium,web-scraping,Python,Html,Selenium,Web Scraping,我正在使用以下组织解析网页: <nav class="sidebar-main"> <div class="sidebar">Found 3 targets</div> <ul><li><a href="#target1" class="current"><span>target1</span></a></li> <li>&l
<nav class="sidebar-main">
<div class="sidebar">Found 3 targets</div>
<ul><li><a href="#target1" class="current"><span>target1</span></a></li>
<li><a href="#target2" ><span>target2</span></a></li>
<li><a href="#target3"><span>target3</span></a></li></ul>
</nav>
我不断得到错误:
Message: The element reference of <li> stale either the element is no
longer attached to the DOM or the page has been refreshed.
消息:stale的元素引用或元素为no
不再附加到DOM或页面已刷新。
现在只单击了一个链接,显然selenium在页面刷新时找不到后续元素,我该如何解决这个问题?一旦单击第一个链接,就会导航到新页面或刷新页面。您需要跟踪元素列表,再次找到列表元素,然后单击所需的元素。如果页面已更改,则还需要导航回原始页面 你可以试试下面的方法
sidebar = browser.find_element_by_class_name('sidebar-main')
elementList = sidebar.find_elements_by_tag_name("li")
for i in range(len(elementList)):
element = browser.find_element_by_class_name('sidebar-main').find_elements_by_tag_name("li")[i]
element.click()
点击一个链接?该列表中是否有多个链接?
sidebar = browser.find_element_by_class_name('sidebar-main')
elementList = sidebar.find_elements_by_tag_name("li")
for i in range(len(elementList)):
element = browser.find_element_by_class_name('sidebar-main').find_elements_by_tag_name("li")[i]
element.click()