在 python 中使用 Selenium 时出现以下错误:
selenium.common.exceptions.StaleElementReferenceException: Message: u'stale element reference: element is not attached to the page document\n
有趣的是,错误在 for 循环中的不同时间弹出。有时它会通过例如。 4 次迭代和其他时间,例如。 7.
正在运行的一些相关代码是:
for i in range(0, 22):
u = driver.find_elements_by_id("data")
text = u[0].get_attribute("innerHTML")
driver.find_elements_by_class_name("aclassname")[0].click()
这个错误是什么意思,我可以尝试解决什么问题?
原文由 bill999 发布,翻译遵循 CC BY-SA 4.0 许可协议
这意味着该元素不再在 DOM 中,或者它发生了变化。
以下代码将通过控制和忽略 StaleElementExceptions 并像处理任何其他 NoSuchElementException 一样处理它们来帮助您找到元素。它等待元素不再过时,就像等待元素出现一样。它也是一个很好的例子,说明如何在 Selenium 中正确地等待条件。
为了更好地理解这个问题,假设您在一个 for 循环中并思考在迭代过程中会发生什么: