Geb是否缓存页面对象

Does Geb cache Page Objects

我正在尝试 运行 测试,其中我有一个要在 Web 应用程序中搜索的 ID 列表,并检查是否为每个 ID 设置了 属性。我将搜索结果建模为一个页面,但每次加载新的搜索结果时,第一个结果似乎都被缓存了,最终我得到了一个过时的元素引用异常。如何为每个搜索到的 ID 实例化一个新的 SearchResult 页面对象?

Geb 中没有页面缓存的概念。 Page content 元素虽然可以缓存,但默认情况下不缓存。你可能仍然得到 StaleElementReferenceException 即使它没有被缓存,例如当与 DOM 元素交互时,这些元素在这样做时被删除,我怀疑这就是你的情况。

如果您的页面是动态的,即 DOM 在页面上执行操作后以异步方式修改,那么您应该确保等待页面稳定后再与内容交互。而且不需要直接使用WebDriver APIs来实现。

如果您分享您的页面代码 class 和您获得的堆栈跟踪,我将能够为您提供更好的指导。