其他分享
首页 > 其他分享> > 如何判断用户代理Shadow Dom是打开还是关闭?

如何判断用户代理Shadow Dom是打开还是关闭?

作者:互联网

我有以下典型的影子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-root(open )在我的Devtool中,所以我想知道如何确定此用户代理影子dom是打开还是关闭?

编辑:我正在使用JS和我的代码如下所示:

driver.executeScript("return 
    arguments[0].shadowRoot",driver.findElement(webdriver.By.css("#input-
    22"))).then(function(text) { text.getText()});

文本返回为空.

解决方法:

按照@FlorentB.建议,

driver.findElement(By.css("#input-22")).getAttribute("value"‌​) 

将返回用户代理影子根的文本值.

标签:selenium,shadow-dom,html,python
来源: https://codeday.me/bug/20191025/1928385.html