首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >即使有显式等待,也会出现StaleElementReferenceException

问即使有显式等待,也会出现StaleElementReferenceException
EN

Stack Overflow用户
提问于 2020-12-06 13:59:09
回答 1查看 47关注 0票数 1

我一直在尝试从AlgoExplorer网站上抓取数据。它有一个带有分页的表来存储数据。即使我使用显式等待来点击“下一步”按钮,它仍然得到StaleException。这是我的一段代码,还有一张错误的图片:

代码语言:javascript
复制
for i in tqdm(range(5)): 
  page = driver.find_element_by_tag_name('tbody').find_elements_by_tag_name('a')
  for e in page:
    pages.append(e.text)
  WebDriverWait(driver, 5).until(EC.element_to_be_clickable((By.CSS_SELECTOR, '.pagination.next'))).click()

当然,每个变量都已声明,库也已导入。

你能给我解释一下为什么我还有这个例外吗?enter image description here

EN

回答 1

Stack Overflow用户

发布于 2020-12-07 04:57:10

当元素不再附加到页面时,将引发StaleElementReferenceException。我的猜测是序列看起来像这样:

已找到

  1. 元素
  2. html dom已重建-可以使用使用的定位器找到元素,但它不是在步骤1中找到的元素)
  3. js脚本尝试与在步骤1)中找到的元素进行交互)但它不是相同的元素(它具有相同的属性等,但在使用Selenium

的情况下,它是不同的元素

您可以尝试通过使用https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver检查添加/删除了哪些DOM元素来验证我的假设

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

https://stackoverflow.com/questions/65165173

复制
相关文章

相似问题

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