我已经在Stackoverflow周围搜索了一段时间,试图为我的特定用例找到一个修复程序,因为我时不时地(不是所有时间)都在获取StaleElementReferenceException,但我似乎找不到任何东西。
我正在尝试抓取一个页面,并收集该页面中的所有链接。
driver.get(SOME_URL)
links = driver.find_elements_by_tag_name('a')
for link in links:
href = link.get_attribute('href')
... DO_SOMETHING_WITH_HREF ...我尝试使用隐式等待,并尝试让我的脚本休眠几秒钟,但两者都不起作用。我也一直在关注显式等待,但我知道这是不可能的,因为链接可能出现在页面上的任何地方。这样就没有什么特别的元素可以等待了。
发布于 2021-05-15 02:02:10
StaleElementReferenceException表示调用函数的DOM已更改。由于您对链接做了一些操作,因此不能遍历其余部分。我的建议是将它们存储在一个列表中:
links.append(href)最后,你循环遍历这个列表。这是因为您没有与元素交互,也没有收到错误消息。
https://stackoverflow.com/questions/66195116
复制相似问题