> 技术文档 > Selenium 获取 Shadow DOM 内部元素时出现 `StaleElementReferenceException` 的问题排查与解决

Selenium 获取 Shadow DOM 内部元素时出现 `StaleElementReferenceException` 的问题排查与解决


Selenium 获取 Shadow DOM 内部元素时出现 StaleElementReferenceException 的问题排查与解决

在使用 Selenium 操控浏览器自动化测试无界微前端(Wujie)应用的过程中,我们遇到了一个奇特的问题:无法通过常规方式获取 Shadow DOM 中的元素,抛出 StaleElementReferenceException 异常。本文将详细记录这次问题的排查过程、分析成因,并提供有效的解决方案。


一、问题现象

我们在尝试通过 Selenium 获取某个自定义 Web Component(如 )内部 Shadow DOM 中的 元素时,出现了如下异常:

StaleElementReferenceException: Message: stale element reference: stale element not found

代码示例如下:

chrome = Chrome()chrome.get(url)host = chrome.find_element(\"css selector\", \"wujie-app\")shadow_root = host.shadow_rootelement = shadow_root.find_element(\"css selector\", \"input\")