【发布时间】:2018-07-05 05:30:18
【问题描述】:
我有以下典型的shadow dom html代码:
<input is="text-input" class="input-element style-scope paper-input"
autocomplete="off" placeholder="" autocapitalize="none" autocorrect="off"
aria-describedby="" aria-labelledby="paper-input-label-22" id="input-22"
tabindex="0">
#shadow-root (user-agent)
<div id="inner-editor">test</div>
</input>
我正在使用 Selenium 尝试获取 shadow root 中的文本,但它总是返回 null,我知道打开和关闭 shadow DOM 之间的区别,并且 Shadow dom 的开放版本总是显示为#shadow-我的 Devtool 中的 root (打开),所以我想知道如何判断这个用户代理影子 dom 是打开还是关闭?
编辑:我正在使用 JS,我的代码如下所示:
driver.executeScript("return
arguments[0].shadowRoot",driver.findElement(webdriver.By.css("#input-
22"))).then(function(text) { text.getText()});
文本返回为空。
【问题讨论】:
-
您有可以链接的公开示例吗?我想尝试一下。
-
我不知道,这是我正在编写测试的项目的一部分。我会毫无问题地访问标记为 (open) 的 shadow-root,但是对于 (user-agent) 它们总是返回为 null,这让我认为它们是封闭的影子 DOM。
-
了解...您知道我们可以看到的任何可能采用这种格式的公共/示例页面吗?
-
也许这个页面是相关的:stackoverflow.com/questions/38701803/…
-
我正在使用 JS。当我尝试使用这种代码时,它返回 null,这就是为什么我怀疑它是一种封闭的影子 DOM 与开放,我也对其进行了测试并且它有效。所以user-agent shadow DOM是浏览器自己创建的,此时无法访问。
标签: python html selenium shadow-dom