问题标签 [staleelementreferenceexception]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
204 浏览

java - 硒火 StaleElementReferenceException

我尝试用硒制作一个网络爬虫。我的程序触发了一个 StaleElementReferenceException。我认为那是因为我递归地抓取了一个页面,当一个页面没有更多链接时,该功能导航到下一页而不是之前的父页面。

因此,当当前 url 不等于父 url 时,我引入了一个树数据结构来导航回父级。但这不是我的问题的解决方案。

有谁能够帮我?

代码:

这是控制台的输出:

0 投票
1 回答
2730 浏览

python - 使用 selenium (python) 循环遍历 webelements 列表以检索属性会产生 StaleElementReferenceException

我使用 selenium webdriver 在网站上进行搜索,该网站为我提供了多个页面,每个页面上有多个链接。我的目标是创建搜索产生的所有链接的列表。

它适用于第一页,但是当我在第二页上时,我尝试提取“href”属性的 for 循环会产生 StaleElementReferenceException。

我相信应该有一些方法可以用 WebDriverWait 解决这个问题,但我不太清楚到底是怎么回事。感谢您的任何建议。

编辑:错误信息:

0 投票
0 回答
25 浏览

java - 过时的元素引用:尝试获取文本时元素未附加到页面文档

我尝试了不同的方法来解决这个问题。这是当前代码:

该代码尝试获取下拉选项的文本。此外,在调试模式下,代码有时可以完美运行。

0 投票
1 回答
163 浏览

selenium - 遍历 WebElement 列表时获取 StaleElementReferenceException

我试图自动化以下场景:

  • 访问 amazon.com
  • 搜索耳机
  • 将第一个结果页面中的所有畅销书添加到购物车

我为这个场景编写脚本所遵循的步骤:

  • 访问 amazon.com
  • 在搜索字段中输入文本“耳机”
  • 点击搜索按钮
  • 点击标记为“畅销书”的链接
  • 点击“加入购物车”按钮
  • 导航回结果页面
  • 点击另一个标记为“畅销书”的链接
  • 点击“加入购物车”按钮
  • 导航回结果页面

所有畅销书都有相同的 xpath:

所以我实现了一个 WebElements 列表,如下所示:

我已经通过 3 种方式实现了点击链接并使用循环添加到购物车,如下所示:

当我运行脚本时,“畅销书”列表中有 3 个元素。当循环执行时,第一个元素被点击并添加到购物车中,驱动程序导航回结果页面。然后我使用上述 3 种方式得到 staleElementReferenceException 。

更新:我已经实现了如下场景:

0 投票
2 回答
521 浏览

java - 如何使用 selenium 访问多个 html 表列数据

我正在尝试根据列数据访问某一行,然后单击该行中的链接。我如何实现这一目标?我已经坚持了5天。

我是 Selenium 的新手,但我尝试遍历元素列表,但随后会得到一个 StaleElementReferenceException: stale element is not attach to the DOM。

我在 selenium 网站上看到了一些与此类似的其他问题,这意味着元素或页面已更新,因此对该元素的引用可能不正确,因此我尝试了一些方法:

我尝试使用预期条件刷新,然后重新初始化元素,但这只有时有效,我仍然会收到错误我尝试添加尝试和捕获,但这似乎不起作用,如果我也没有完全显示做对了。

我还想看看我是否可以完全放弃 for 循环,只在列表中找到一个元素,该元素具有我需要使用 selenium 的“包含”的 3 个属性,但我不确定它是否可以做到这一点

表结构如下:

给我问题的功能-伪代码

我希望通过传入的 3 个参数找到正确的行,然后单击该行中的 a 标记以继续下一步。

错误:org.openqa.selenium.StaleElementReferenceException:过时的元素引用:元素未附加到页面文档

0 投票
3 回答
524 浏览

java - 我的 java/selenium 项目突然出现错误,但这些元素仍然存在于 Web 应用程序中。有谁知道如何解决这个问题?

我的 java/selenium 项目突然出错,但 Web 应用程序上仍然存在这些元素。所以我突然得到了一些奇怪的东西。直到今天早上一切都很好。我之前已经执行了 1000 次这些测试,同时前端没有任何改变。

错误示例:

org.openqa.selenium.WebDriverException: 未知错误: 未处理的检查器错误: {"code":-32000,"message":"Cannot find context with specified id"}

或者

org.openqa.selenium.TimeoutException:预期条件失败:等待由以下位置找到的元素:By.linkText:Betalingsregeling(尝试 10 秒,间隔 500 毫秒)

或者

org.openqa.selenium.StaleElementReferenceException:过时的元素引用:元素未附加到页面文档(会话信息:chrome = 77.0.3865.90)

或者

org.openqa.selenium.NoSuchElementException: 没有这样的元素: 无法定位元素: {"method":"css selector","selector":"input[id*='searchCriteria[0]'][class*='col -sm-8']"}(会话信息:chrome=77.0.3865.90)

0 投票
1 回答
90 浏览

selenium - 不导航分页3并获得陈旧的元素异常

我需要向下或向上导航页面并检查每个页面上的服务,但是在导航第 3 页时将错误消息显示为陈旧元素异常。

我已尝试使用此代码,但无法正常工作,请有人帮助我。

我期望输出,因为它应该点击每一页,但低于错误

0 投票
2 回答
163 浏览

java - 切换到 iframe 并单击元素不起作用并获得 StaleElementReferenceException

我正在这个网站上练习:https ://dojotoolkit.org/reference-guide/1.9/dijit/layout/TabContainer-examples.html

  1. 使用以下方法单击编程嵌套选项卡部分中的运行按钮:

    /li>
  2. 弹出屏幕需要一段时间才能加载。然后我尝试点击选项卡 2:

0 投票
1 回答
81 浏览

python - Python Selenium wedriver 遍历表单

我正在尝试使用数据列表自动化表单断言,但是我正在努力何时以及如何使用“WebDriverWait”或驱动程序隐含等待。我的清单是 1000 个字符串。当我运行 100 个样本时,正确捕获不到 100 个。下面的代码捕获 ElementNotSelectableException\StaleElementReferenceException 但没有正确解决它们。

0 投票
1 回答
85 浏览

python - 当我尝试使用 Selenium 和 Python 在 Instagram 帖子的“某人和其他人喜欢”中单击“其他人”时,StaleElementReferenceException

如您所知,当您在桌面版 Instagram 上打开帖子时,它会显示“被某人和 400 人点赞”。我正在尝试使用硒单击“其他 400 人”按钮,这样我就可以继续抓取追随者的姓名。 我试图让 Selenium 点击的按钮我将按钮的 Xpath 检索为 /html/body/div 1 /section/main/div/div/article/div[2]/section[2]/div/div[2]/button

但是,会出现一个错误,即 StaleElementReferenceException。以下是我的代码:

错误发生在第二行,actions.move_to_element(likes).perform()

我想知道是否有人知道我该如何解决它。