java - Selenium WebDriver 中的 "Element not found in the cache"

标签 java selenium-webdriver browser-cache

有什么方法可以使用 Selenium WebDriver 清除浏览器缓存吗?如果我可以为更大的测试用例清除缓存,那将会有所帮助,有时我会遇到以下异常:

“在缓存中找不到元素 - 页面可能在查找后发生了变化”。

我正在使用 Java。任何建议将不胜感激,谢谢!

最佳答案

问题与浏览器缓存无关。这意味着您对浏览器 DOM 中的对象有过时的引用。通常可能有以下原因:

  1. 您在一页上找到一个元素。然后在浏览器中导航到另一个页面。然后在 Java 代码中,您尝试使用第一页中的元素。它不再有效,您将收到 StaleElementReferenceException 消息“在缓存中找不到元素......”

  2. 您在一页上找到一个元素。然后使用 JavaScript 修改页面,您的元素从 DOM 中删除。即使创建了一个具有相同 ID 和样式的新元素,它也是一个新实例,并且您的 JavaCode 中的引用是陈旧的。您需要再次查找该元素,您将获得正确的引用。

关于java - Selenium WebDriver 中的 "Element not found in the cache",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19310888/

相关文章:

javascript - 200 响应的性能影响

JavaFX - 打开新窗口时不加载 CSS

java - 将 JSON 数组添加到 JSONObject,而不用 JAVA 中 JSON 数组值的引号

java - 旋转 android 时出现 NullPointerException(显示改变大小)

Java 序列化 - java.io.InvalidClassException 本地类不兼容

java - 如何使用 webdriver 在下拉列表中选择一个项目(使用或不使用 xpath)

html - 使用 Ruby 和 Selenium Webdriver find_elements 根据条件选择并单击特定链接

javascript - 在大量缓存站点上使用查询字符串版本标识符的 Service Worker 的最佳方法

java - 如何使用 selenium webdriver 在滚动的动态加载网格中搜索元素?

javascript - 为什么即使禁用缓存,服务器也会忽略代码文件中的更改?