Open shadow root доступен через свойство .shadowRoot хост-элемента.
На sandbox-странице: хост — #shadow-host-open, внутри него #shadow-open-input и #shadow-open-btn.
Прочитать значение поля
string val = instance.ActiveTab.MainDocument.EvaluateScript(
"return document.querySelector('#shadow-host-open').shadowRoot.querySelector('#shadow-open-input').value;"
);
project.SendInfoToLog("shadow input: " + val);Кликнуть кнопку
instance.ActiveTab.MainDocument.EvaluateScript(
"document.querySelector('#shadow-host-open').shadowRoot.querySelector('#shadow-open-btn').click();"
);Прочитать innerHTML кнопки
string html = instance.ActiveTab.MainDocument.EvaluateScript(
"return document.querySelector('#shadow-host-open').shadowRoot.querySelector('#shadow-open-btn').innerHTML;"
);
project.SendInfoToLog("btn html: " + html);Записать значение в поле
instance.ActiveTab.MainDocument.EvaluateScript(
"document.querySelector('#shadow-host-open').shadowRoot.querySelector('#shadow-open-input').value = 'текст из скрипта';"
);Получить все свойства элемента
Используем JsGet:
string btnText = instance.JsGet(
"document.querySelector('#shadow-host-open').shadowRoot.querySelector('#shadow-open-btn')",
"innerHTML"
);
project.SendInfoToLog(btnText);