c# - 如何在 Selenium Webdriver 中处理 shadow dom

标签 c# selenium-webdriver shadow-dom

我正在尝试使用 c# WebDriver 来处理这个 dom。我的 chromedriver 使用 v38。 我无法使用 input#frameworkInput,因为看不到#shadow-root 下的所有内容。 所以我尝试了

IWebElement ele = (IWebElement)((IJavaScriptExecutor)Driver).ExecuteScript("return arguments[0].shadowRoot", element);

但这只是带回了未找到 shadowRoot 的异常。我在这里尝试了一些建议,但它们似乎不起作用。有什么指点吗?

This is the dom

最佳答案

我找到了我自己问题的答案

element1
(shadowdom)
element2 
(shadowdom)
element3

我在想我可以直接从 dom 访问 arguments[0].shadowRoot 事实上,我必须获取 element1,查询它的 shadowRoot,获取 element2,查询它的 shadowRoot,然后我才能找到 element3。 这不是我所期望的,很可能我没能理解以前关于这个主题的帖子。(?)最有帮助的答案是 selenium webdriver (chromedriver) and accessing shadow dom

关于c# - 如何在 Selenium Webdriver 中处理 shadow dom,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55335650/

相关文章:

c# - key 不存在错误

c# - 选择 'performance' 选项卡调用 Windows 任务管理器

c# - 当不涉及真正的 I/O 调用时,异步链的所有级别是否都需要ConfigureAwait(false)?

c# - 如何使用 C# 在 Selenium WebDriver 中按下 'Esc' 键

javascript - 无法使 div/元素在嵌套的 shadowdom 中移动

javascript - Shadow dom 隐藏 innerHTML

c# - 如何在不打开命令提示符的情况下从 C# 打开 jar 文件

java - Selenium:如何获取包含所有div标签的隐藏元素的值

java - Selenium 自动化 : Identifying unique set of webelements using selenium in JAVA

javascript - HTML Shadow dom : why does attachShadow(. ..).insertAdjacentHTML 不起作用,但 AttachShadow(...).innerHTML 起作用吗?