当我尝试使用for循环单击所有链接时,硒显示陈旧错误?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当我尝试使用for循环单击所有链接时,硒显示陈旧错误?相关的知识,希望对你有一定的参考价值。
all_divs包含我得到的所有链接。我需要单击所有它们,但是当我尝试执行操作时,selenum会抛出陈旧的错误,说
“ selenium.common.exceptions.StaleElementReferenceException:消息:的元素引用是陈旧的;要么该元素不再附加到DOM,它就不在当前框架上下文,或文档已刷新“
link_div = driver.find_elements_by_css_selector("div[id='sidebar1269']")[0]
all_divs = link_div.find_elements_by_css_selector("div>a:last-of-type")
print(all_divs[0])
for i in all_divs:
i.click()
答案
[不知道html可能给出更有效的答案,这应该可以为您带来想要的东西。单击链接后,dom很可能已更新/更改,因此您需要在单击之前重新查找元素。
link_div = driver.find_elements_by_css_selector("div[id='sidebar1269']")[0]
number_of_divs = len(link_div.find_elements_by_css_selector("div>a:last-of-type"))
for i in range(number_of_divs):
link_div = driver.find_elements_by_css_selector("div[id='sidebar1269']")[0]
link_div.find_elements_by_css_selector("div>a:last-of-type")[i].click()
以上是关于当我尝试使用for循环单击所有链接时,硒显示陈旧错误?的主要内容,如果未能解决你的问题,请参考以下文章