Selenium中的StaleElementReferenceException(Python)

时间:2020-06-29 15:14:38

标签: python-3.x selenium-chromedriver

url="https://www.pla...com"
browser=Chrome(executable_path='chromedriver')
browser.get(url)
components=browser.find_elements_by_css_selector('.files-new a')
for i in components:
   print(i.get_attribute("href")) 
   browser.get(i.get_attribute("href"))

我正在收集链接并尝试对其进行迭代。但是在第二个循环中,我收到了StaleElementReference错误。 find_elements 是否不应该存储和保留链接?有任何帮助的想法吗?

1 个答案:

答案 0 :(得分:0)

在循环中调用browser.get()之后,您现在进入了一个新页面,因此[components]变量中的所有“元素对象”都是陈旧的。

解决方案:开始循环之前,将[components]中的所有“ href”值收集到字符串列表中。然后,在循环中,从该列表而不是从[components]中过时的元素对象中读取href。