我在Firefox上使用selenium webdriver。
driver.navigate()背面();
我浏览页面,当我浏览页面时,我得到以下异常。在浏览器中,它说文档已过期。
org.openqa.selenium.StaleElementReferenceException:在缓存中找不到元素 - 也许页面自查找以来已更改 命令持续时间或超时:23毫秒 有关此错误的文档,请访问:http://seleniumhq.org/exceptions/stale_element_reference.html 构建信息:版本:'2.21.0',修订版:'16552',时间:'2012-04-11 19:09:00' 系统信息:os.name:'Windows 7',os.arch:'x86',os.version:'6.1',java.version:'1.6.0_20' 驱动程序信息:driver.version:RemoteWebDriver at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) 在org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:175) 在org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:128) 在org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:459) 在org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:245) 在org.openqa.selenium.remote.RemoteWebElement.getText(RemoteWebElement.java:141) at run.DriverImpl.startScrapingFromThePage(DriverImpl.java:48) at ui.SAFSPUserInterface.startButtonClicked(SAFSPUserInterface.java:311) at ui.SAFSPUserInterface $ 1.actionPerformed(SAFSPUserInterface.java:62) 在javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) 在javax.swing.AbstractButton $ Handler.actionPerformed(AbstractButton.java:2318) 在javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) 在javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) 在javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.Component.processMouseEvent(Component.java:6263) 在javax.swing.JComponent.processMouseEvent(JComponent.java:3267) at java.awt.Component.processEvent(Component.java:6028) at java.awt.Container.processEvent(Container.java:2041) at java.awt.Component.dispatchEventImpl(Component.java:4630) at java.awt.Container.dispatchEventImpl(Container.java:2099) at java.awt.Component.dispatchEvent(Component.java:4460) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168) at java.awt.Container.dispatchEventImpl(Container.java:2085) at java.awt.Window.dispatchEventImpl(Window.java:2478) at java.awt.Component.dispatchEvent(Component.java:4460) at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) 在java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
该页面包含Ajax和javascript调用。任何人都可以帮助我吗?
答案 0 :(得分:2)
首先,您粘贴的例外与导航无关。您有一个导致异常的陈旧元素的句柄。当您对页面中的HTML元素进行WebElement引用时,会发生StaleElementException,该元素可能由于页面上的交互而被删除/丢失。因此,作为不存在的DOM元素的代理的WebElement无效。
当导航回到最初通过POST请求加载的页面时,webdriver中还有这个known issue。所以你期望的页面可能没有实际加载。在firefox中回发警告的意思是重新发出navigate()。back(),即退出两次。