【发布时间】:2014-07-24 15:56:38
【问题描述】:
我在查找页面刷新的元素时遇到问题。现在尝试对元素执行任何操作会在StaleElementReferenceException 下方抛出一条消息Element is no longer valid
查找此url
上面的参考网址上有一个注释关于:
Should you wish to head down this route, the simplest hook point is to call setElementConverter
setElementConverter 是什么或如何使用的? google了一下,没找到上述方法的实际实现。
【问题讨论】:
-
你能不能给个代码sn-p 不起作用?
-
这里一样,找不到关于
setElementConverter的信息,即使在文档本身和源代码中也是如此。而setElementConverter(来自RemoteWebDriver类)是protected,所以在他们神秘的“你是否希望......”暗示中,他们似乎也暗示他们的“沿着这条路线”涉及扩展RemoteWebDriver并调用@ 987654331@ 来自子类中的某处。 -
@bandeesh-r-sirga 如果这是一个 XY 问题,而您实际上只是在尝试使用 Selenium 进行工作,那么您需要在元素过时后重新找到它。如果您再次收到 StaleElementException,driver.findElement(By) 并且该元素将不再是陈旧的。如果 DOM 树在该节点或其上方的层次结构中发生更改,则元素会“过时”。再次找到该元素会满足您的需求,还是您绝对必须处理您最初找到的相同陈旧元素?