当前位置: 首页 > 知识库问答 >
问题:

使用Java,如何处理"陈旧的元素异常"在WebDriver?[复制]

万俟招
2023-03-14

我正在使用驱动程序。findelements(By.xpath(“//*);要检索页面上的所有元素,但是在IE9/IE10上,我得到了一个陈旧的元素异常。我如何处理它?请帮助我。

错误如下所示:

Started InternetExplorerDriver server (32-bit)
2.33.0.0
Listening on port 40366
log4j:WARN No appenders could be found for logger (org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager).
log4j:WARN Please initialize the log4j system properly.
I am in IE
Scanning Web objects....Please be patient
org.openqa.selenium.StaleElementReferenceException: Element is no longer valid (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 15 milliseconds
For documentation on this error, please visit: http://seleniumhq.org/exceptions/stale_element_reference.html
Build info: version: '2.35.0', revision: '8df0c6b', time: '2013-08-12 15:43:19'
System info: os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.7.0_25'
Session ID: 750c270f-ce8d-4d46-b6fb-6944183dbbd9
Driver info: org.openqa.selenium.ie.InternetExplorerDriver
Capabilities [{platform=WINDOWS, elementScrollBehavior=0, javascriptEnabled=true, enablePersistentHover=true, ignoreZoomSetting=false, browserName=internet explorer, enableElementCacheCleanup=true, unexpectedAlertBehaviour=dismiss, version=9, cssSelectorsEnabled=true, ignoreProtectedModeSettings=true, requireWindowFocus=false, handlesAlerts=true, initialBrowserUrl=, nativeEvents=true, browserAttachTimeout=0, takesScreenshot=true}]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:191)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:554)
at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:268)
at org.openqa.selenium.remote.RemoteWebElement.getAttribute(RemoteWebElement.java:123)
at com.util.browser.browser_type.getobjects(browser_type.java:225)
at com.util.browser.browser.main(browser.java:57)
--Arr SIze===>24

共有1个答案

程化
2023-03-14

因此,从堆栈跟踪来看,驱动程序只需等待15毫秒。太短了。尝试:

wd.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);

至少当你在IE上运行的时候。也就是说,我担心这个问题实际上是IE驱动程序构建方式的一个缺陷。看看这个帖子:

https://www.google.com/url?sa=t

这个问题和其他非常痛苦的解决方法。。。

https://www.google.com/url?sa=t

我怀疑IE驱动程序根本得不到支持。

 类似资料:
  • 问题内容: 我在Selenium 2 Web驱动程序测试中具有以下代码,该代码在调试时有效,但是在构建中运行它时,大多数情况下会失败。我知道这一定与未刷新页面的方式有关,但不知道如何解决它,因此,任何有关我做错事情的指针都应该受到赞赏。我正在使用JSF primefaces作为我的Web应用程序框架。当我单击添加新链接时,会出现一个弹出对话框,其中包含一个输入框,我可以在其中输入日期,然后单击“保

  • 我正在写一个小的抓取程序,它导航到一个包含链接列表的页面, 它单击第一个链接,打开一个新页面,获取一些详细信息,然后导航回包含链接列表的页面,然后尝试查找下一个链接,但我得到: 组织。openqa。硒。StaleElementReferenceException:stale元素引用:元素未附加到页面文档 你知道我该怎么避免吗?

  • 代码错误 行,我在控制台中得到如下错误:无法找到元素:{“method”:“id”,“selector”:“loginusername”}命令持续时间或超时:262毫秒

  • 我有一个下拉列表,我第一次能够按索引选择元素。当我第二次尝试选择元素时,它会抛出陈旧的元素引用错误。我尝试了try catch block,显式等待,但没有任何效果。

  • 问题内容: 我遇到以下问题。我有一个隐藏的下拉列表,因此当我进行选择并运行测试时,出现以下错误: 这是我的选择: 是否可以绕过它来操纵隐藏的元素?我在其中一篇文章中找到了以下代码: 这是html代码: 在这种情况下,它不起作用。任何帮助,将不胜感激。 问题答案: 由于尝试模拟真实用户,因此它无法与不可见/隐藏的元素进行交互。要解决您的问题,我认为您需要先单击,这将使下拉菜单可见,然后从下拉菜单中选