问题标签 [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 回答
64 浏览

python - Webdriver Wait 或等价物 - 带有属性

我有一段代码使用 Selenium 循环浏览页面中的链接。我已Time.sleep(3)用 a替换WebDriverWait()以尝试加快速度(因为我正在运行 50 页),但我无法让它工作。出于某种原因implicitly_wait(30),它没有起到作用。

没有任何Time.sleep()WebDriverWait()代码在尝试声明变量“elems”时会生成过时的元素引用错误,因为驱动程序无法通过 xpath 找到任何元素 - 这并不奇怪。

我在这里使用的 WebDriverWait() 解决了这个问题,但随后代码又遇到了另一个问题:在嵌套 for 循环的最后一行,它引发了另一个过时的元素引用错误。似乎虽然在 WebDriverWait() 让代码继续执行时加载了元素,但这些元素的属性不一定准备好。

我的目标是使代码尽可能快,所以 Time.sleep(10) 或类似的东西不会很吸引人。在继续之前,如何顺利确保所有元素及其属性都已加载?为什么implicitly_wait(30) 不能解决这个问题?

编辑:有问题的网址:从 http://www.oddsportal.com/baseball/usa/mlb-2017/results/#/page/1/http://www.oddsportal.com/baseball/usa/mlb -2017/结果/#/页/50/

0 投票
0 回答
283 浏览

python - 消息:过时的元素引用:元素未附加到页面文档 python 下拉菜单

你好朋友,

我是 Python 和 Selenium 的新手,对于一个自由项目,我需要创建一个网络爬虫,它可以自动执行从网站获取信息的手动任务。我在这里添加了代码。它应该打开一个产品页面,从下拉选项中跟踪所有可能的组合,并获取每个组合和该产品组合的价格。最后将其写入excel文件。一个产品可能有数千种变化。每次在下拉列表中选择一个选项时,价格都会更新。我尝试在 Selenium 中使用 WAIT 和 EXPECTED CONDITION,但是,我继续收到异常“消息:过时的元素引用:元素未附加到页面文档”

我已经在这方面花费了足够的时间,并希望 Stack Overflow 社区能够帮助我找到解决方案!

提前致谢!

0 投票
2 回答
238 浏览

java - 如何修复 StaleElementReferenceException?

我正在尝试在下拉列表的所有选项之间进行迭代,并且它适用于第一个选项。在第二个选项之后,我得到了陈旧的元素异常。

下面是跟踪:

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

下面是我的代码:

0 投票
3 回答
111 浏览

java - 我收到 StaleElementReferenceException:元素未附加到页面文档

HTML代码

我得到StaleElementReferenceException:元素未附加到页面文档。我浏览了 StackOverflow 中已有的一些解决方案。它没有用,它继续抛出同样的错误。这是我正在使用的代码,它引发了过时的引用错误

0 投票
2 回答
309 浏览

python - StaleElementReferenceException: My Selenium code won't turn pages

I'm trying to scrape several pages of a site with Selenium and Python, but my code is breaking over and over. I want to be able to enter the page number in the value box given at the bottom of every page. As of now my code does enter the page number but it breaks right after the new page is loaded. I've been able to scrape just the first page, and as soon as the second page loads, the code breaks.

Here's my code:

And here's the error:

That's how the output looks like:

0 投票
2 回答
431 浏览

selenium - Selenium assertFalse 因 staleelementreferenceexception 而失败

我在 Java 中有一个 selenium 测试,我正在做一些这样的断言:

这是从 IDE 导出到 Java Webdriver 时 Selenium 生成的标准方法。

(是的,我想断言这个元素不存在)

当我在上面的代码行进行测试时,我总是遇到错误错误:过时的元素引用:元素未附加到 DOM

但是,当我在该步骤前面放置一个 thread.sleep 时,它可以工作。我不明白的事实是等待 1 毫秒就足够了。在断言之前等待是典型的吗?还有其他方法可以解决这个问题吗?(隐式等待在这里没有帮助)来自德国的问候!

0 投票
1 回答
225 浏览

python - Selenium 迭代中的 StaleElementReferenceException

您好,我正在尝试从以下页面中删除一些信息:http: //verify.sos.ga.gov/verification/

我的代码如下:

当我执行脚本时,它适用于第一次迭代,但在第二次迭代中失败。引发错误的确切位置在该attributes = row.find_elements_by_xpath('td')行中的 scrap_licenses_results() 函数中。

任何帮助将不胜感激

0 投票
0 回答
44 浏览

c# - 如何处理另一个元素内元素的 StaleElementReferenceException

我有一个名为 Navigation 的类,它具有用于导航网站页面的简单功能。

上面的导航出现在每个页面上,所以我把它放在一个 BasePage 类中(根据页面对象模型)

在我的测试课中,我有以下内容

单击下一步按钮第一次有效,但第二次失败。我的 Navigation 类的NextPage()行出现 StaleElementReferenceException 。我明白它发生的原因 - 我已经导航到一个新页面,因此页脚下一个元素现在都是旧的。

我可以在 Navigation 类中再次找到 Next 按钮,但我希​​望 Navigation 类保持页脚元素的范围内(即我不想做一个驱动程序.FindElement(By.ClassName("Next ")) 并再次在整个页面中搜索“下一步”按钮)

有没有一种干净的方法可以让我再次找到页脚元素?理想情况下来自 BasePage 类?

谢谢。

0 投票
0 回答
230 浏览

python - 克服 Python 中的 StaleElementReferenceException?

意图:

我的目标是从 whoscored.com 上抓取足球数据。匹配页面(参见此处的示例)包含一个时间线视图(div id = match-center-timeline),该视图依次具有时间线句柄(div class = 时间线句柄)。可以拖放手柄以设置时间线以显示匹配统计信息。例如,我想将时间线的下限设置为 10 分钟,将上限设置为 30 分钟。

设置和假设:

我在 OSX 10 上使用 selenium 和 chrome。下面的代码移动了较低的时间线句柄,但抛出了 StaleElementReferenceException。我的信念是页面应用程序会因突然的拖放而感到困惑。

问题:

有什么方法可以模拟较慢的鼠标拖动?这甚至是问题吗?如何克服?提前致谢!

Python 3 代码:

控制台错误:

支持图片:

0 投票
1 回答
51 浏览

python - 未处理多个异常

目前我在 for 循环中使用多个异常。但是,它们仍然抛出异常错误,我不确定为什么它们没有被处理。

这是我的代码:

这是抛出的错误: