问题标签 [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.
java - 尝试单击列表中的每个元素
这是我的代码。我想单击的元素 我只单击第一项,然后我得到这个“陈旧的元素引用:元素未附加到页面文档”。单击列表项后,它会展开并出现更多的子列表项,所以如果这是导致问题的原因,请注意。
编辑:我是这样做的,我什至包括了子元素。感谢下面的评论,我终于完成了这项任务。
}
java - StaleElementReferenceException:陈旧的元素引用:元素未附加到页面文档
我在我的 selenium java 项目中不断收到错误消息。
错误信息是:
线程“主”org.openqa.selenium.StaleElementReferenceException 中的异常:过时的元素引用:元素未附加到页面文档
python - 消息:过时的元素引用:元素未附加到 Python 中的页面文档
我一直在尝试在三个不同的网络链接中运行以下代码。代码在一个网络链接上运行良好。但是,它会引发有关“消息:过时元素引用:元素未附加到页面文档”的错误消息。我查看了论坛之前的两个线程(Python Selenium stale element fix和How to Navigate to a New Webpage In Selenium?)关于相同的错误消息,但没有解决问题。这是我的代码:
程序适用于此链接 ( https://github.com/alex ),不适用于 ( https://github.com/agronholm , https://github.com/avassalotti )。
任何解决问题的建议。
java - 使用页面工厂设计模式在页面对象中第二次调用 web 元素会给出过时元素异常
我们有一个带有页面对象和页面工厂设计模式的 UI 框架。在我的一个页面对象类中,我定义了一个 web 元素并调用它。在我的测试步骤类中,当它在一个页面上时,我调用了这个 webelement 一次,当它在另一个页面上时,我再次调用了这个 webelement。下面是我的代码的样子
页面对象类 1:
测试步骤类:
在 webdriver 周围第二次调用它时给了我 staleElementException。此 xpath 是通用 xpath,将在每个页面中使用。这肯定存在于 DOM 中,所以不确定它为什么会给我这个异常?如何在不在每个页面对象类中创建此 web 元素的情况下使用它?
给出的例外是:
org.openqa.selenium.StaleElementReferenceException:过时的元素引用:元素未附加到页面文档
java - 使用 PageFactory 时处理 StaleElementReferenceException
使用Pagefactory
时我直接声明WebElement
如下。
但是,有没有办法处理StaleElementReference
异常,因为我在这里没有使用任何 By 对象。我能想到的所有解决方案都要求我使用定位器作为 By 的对象。
我想在父类中为所有处理StaleElementReferenceException
. 但问题是我只能将引用作为 aWebElement
而不是作为 By 对象传递,这超出了重新初始化WebElement
.
我可以找到以下解决方案:
但同样的问题也出现在这里。我需要将引用作为By
对象传递,就像PageFactory
我有引用一样WebElemrnt
c# - 在 Selenium 中处理动态表时避免 StaleElementReferenceException
我在处理动态表时遇到了麻烦。
这是我们的表:
每个都<tr>
包含以下内容:
我们对元素感兴趣
正在添加到IList<IWebElement>
但是,当尝试访问SendKeys
该元素时,第一次它会正常工作,但第二次总是会失败StaleElementReferenceException
,这是因为前一个元素(第一个)已经改变,并且页面 DOM 也随之改变。
StaleElementReferenceException
如果被抛出,我正在尝试找到一种再次找到元素的方法。
到目前为止,这两种方法都失败了:
方法一
方法二
谢谢你的时间。
c# - 如何扩展 IWebElement 接口以添加新方法
我正在尝试扩展IWebElement
C# 中的接口以添加一种新方法来防止StaleElementReferenceException
.
我要添加的方法很简单retryingClick
,它将尝试在放弃之前最多单击 WebElement 三次:
添加该方法的原因是我们的网页大量使用了jQuery,并且很多元素是动态创建/销毁的,因此为每个元素添加保护WebElement
成为一项巨大的考验。
所以问题就变成了:我应该如何实现这个方法,以便接口IWebElement
可以随时使用它?
谢谢,问候。
java - 过时的元素引用:元素未附加到 Java-Selenium 的页面文档
我要做的是在登录后,驱动程序将单击属性下拉菜单,选择一个选项并单击提交并重复该过程,直到循环完成。
下面是我的代码:
现在它的驱动程序只需选择第一个选项并单击提交。搜索完成后页面加载后立即出现以下错误:
我试图在我的代码中实现以下代码,但由于我是新手,我不知道如何实现以下来解决问题:
非常感谢任何帮助克服这个问题。谢谢。
c# - 操作类上的 staleElementReference 错误
因为我们通常将动作类用于 Click 事件。不知何故,我对每个动作类的使用都感到异常。它会在每个操作方法上引发StaleElementReference异常,不适用于单个实例。
调试时也无法单击元素。当我用简单的 Click() 方法替换它时,它工作得很好。但是,我不能使用基于其他一些异常依赖的 click 方法。
可能出了什么问题,
我错过了什么吗?
python - 使用 Python 迭代时出现 StaleElementException
我正在尝试为亚马逊结果创建一个基本的网络爬虫。当我遍历结果时,有时会到达结果的第 5 页(有时只有第 2 页),然后StaleElementException
抛出 a。当我在抛出异常后查看浏览器时,我可以看到驱动程序/页面没有向下滚动到页码所在的位置(底部栏)。
我的代码:
我看过这个问题,我猜可以应用类似的修复,但我不确定如何在页面上找到消失的东西。此外,根据打印语句发生的速度,我可以看到implicitly_wait(10)
实际上并没有等待整整 10 秒。
异常指向以“driver.execute_script”开头的行。这是一个例外:
有时我会得到一个 ValueError:
所以这些错误/异常让我相信等待页面完全刷新是有问题的。