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

How to tell if user agent Shadow Dom is open or closed?

我有以下典型影子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 尝试获取影子根内的文本,但它总是 returns 空,我知道打开影子与关闭影子 DOM 和打开影子之间的区别Shadow dom 的版本在我的 Devtool 中始终显示为#shadow-root(打开),所以我想知道如何判断此用户代理 shadow 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"‌​) 

将return用户代理影子根的文本值。

看根元素的innerHTML是否为空就可以判断了,看这个例子

import selenium
from selenium import webdriver
driver = webdriver.Chrome()
from bs4 import BeautifulSoup


def expand_shadow_element(element):
  shadow_root = driver.execute_script('return arguments[0].shadowRoot', element)
  return shadow_root

driver.get("chrome://settings")
root1 = driver.find_element_by_tag_name('settings-ui')

html_of_interest=driver.execute_script('return arguments[0].innerHTML',root1)
sel_soup=BeautifulSoup(html_of_interest, 'html.parser')
sel_soup# empty root not expande

shadow_root1 = expand_shadow_element(root1)

html_of_interest=driver.execute_script('return arguments[0].innerHTML',shadow_root1)
sel_soup=BeautifulSoup(html_of_interest, 'html.parser')
sel_soup