Selenium2学习-012-WebUI自动化实战实例-010-解决元素失效:StaleElementReferenceException: stale element reference: element is not attached to the page document
元素失效的想象提示信息如下图所示,此种问题通常是因为元素页面刷新之后,为重新获取元素导致的。
解决此类问题比较简单,只需要在页面刷新之后,重新获取一下元素,就可以消除此种错误了。
以下以易迅网搜索为例进行实例代码演示,希望对各位小主有所启发,若有不足或错误之处,敬请大神指正,不胜感激!
下述代码中若需消除 StaleElementReferenceException 异常,将 43 行中的注释取消,重新运行即可。

1 package main.aaron.demo.javascript; 2 3 import org.openqa.selenium.By; 4 import org.openqa.selenium.JavascriptExecutor; 5 import org.openqa.selenium.WebElement; 6 import org.testng.annotations.Test; 7 8 import main.aaron.sele.core.TestCase; 9 10 /** 11 * JavaScript 在 Selenium 自动化中的应用实例 12 * 13 * @author Aaron.ffp 14 * @version V1.0.0: autoSeleniumDemo main.aaron.demo.javascript JavaScript.java, 2015-6-17 00:24:59 Exp $ 15 */ 16 public class JavaScript extends TestCase{ 17 // 执行 JavaScript 脚本,输入查询内容 18 private String jscript = "document.getElementById('q_show').value='iPhone 6 plus'"; 19 private String baseUrl = "http://www.yixun.com/"; 20 21 /** 22 * JavaScript 赋值 23 * 24 * @author Aaron.ffp 25 * @version V1.0.0: autoSeleniumDemo main.aaron.demo.javascript JavaScript.java testJscript, 2015-6-17 12:37:57 Exp $ 26 * 27 * @throws InterruptedException 28 */ 29 @Test 30 public void testJscript() throws InterruptedException{ 31 this.webdriver.get(this.baseUrl); 32 33 WebElement search = this.webdriver.findElement(By.cssSelector(".mod_search_btn")); 34 System.out.println(search.getText()); 35 this.execJavascript(jscript); 36 37 38 WebElement in = this.webdriver.findElement(By.id("q_show")); 39 40 search.click(); 41 42 // 页面刷新,需要重新获取元素,否则会报错 43 // in = this.webdriver.findElement(By.id("q_show")); 44 45 System.out.println("现像值 --- q_show.getText() : " + in.getText()); 46 47 this.webdriver.close(); 48 this.webdriver.quit(); 49 } 50 51 /** 52 * 执行 JScript 脚本 53 * 54 * @author Aaron.ffp 55 * @version V1.0.0: autoUISelenium main.java.aaron.sele.core SeleniumCore.java execJavascript, 2015-6-17 00:25:38 Exp $ 56 * 57 * @param jscript 脚本 58 */ 59 public void execJavascript(String jscript){ 60 ((JavascriptExecutor)this.webdriver).executeScript(jscript); 61 } 62 }
至此,WebUI 自动化功能测试脚本第 010 篇-解决元素失效:StaleElementReferenceException 顺利完结,希望此文能够给初学 Selenium 的您一份参考。
最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^
欢迎 【 留言 || 关注 || 打赏 】 。您的每一份心意都是对我的鼓励和支持!非常感谢!欢迎互加,相互交流学习!
作者:范丰平,本文链接:https://www.cnblogs.com/fengpingfan/p/4583325.html
Copyright @范丰平 版权所有,如需转载请标明本文原始链接出处,严禁商业用途! 我的个人博客链接地址:http://www.cnblogs.com/fengpingfan

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix