首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在StaleElementReferenceException中使用Selenium收集链接的结果

问在StaleElementReferenceException中使用Selenium收集链接的结果
EN

Stack Overflow用户
提问于 2021-02-14 19:48:51
回答 1查看 17关注 0票数 0

我已经在Stackoverflow周围搜索了一段时间,试图为我的特定用例找到一个修复程序,因为我时不时地(不是所有时间)都在获取StaleElementReferenceException,但我似乎找不到任何东西。

我正在尝试抓取一个页面,并收集该页面中的所有链接。

代码语言:javascript
复制
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 ...

我尝试使用隐式等待,并尝试让我的脚本休眠几秒钟,但两者都不起作用。我也一直在关注显式等待,但我知道这是不可能的,因为链接可能出现在页面上的任何地方。这样就没有什么特别的元素可以等待了。

EN

回答 1

Stack Overflow用户

发布于 2021-05-15 02:02:10

StaleElementReferenceException表示调用函数的DOM已更改。由于您对链接做了一些操作,因此不能遍历其余部分。我的建议是将它们存储在一个列表中:

代码语言:javascript
复制
links.append(href)

最后,你循环遍历这个列表。这是因为您没有与元素交互,也没有收到错误消息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66195116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档