Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Selenium:循环通过href';嵌入在<;李>;元素_Python_Html_Selenium_Web Scraping - Fatal编程技术网

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()