Closed shadow root недоступен через .shadowRoot — оно возвращает null. На sandbox-странице разработчик намеренно сохранил ссылку в window.__closedShadowRoot — это учебный приём, в реальных сайтах можно попробовать найти аналогичную утечку и тогда эти примеры могут быть полезны иначе используйте поиск по картинке.

На sandbox-странице: хост — #shadow-host-closed, внутри #shadow-closed-input, #shadow-closed-pass, #shadow-closed-btn.

Прочитать значение поля

string val = instance.ActiveTab.MainDocument.EvaluateScript(
    "return window.__closedShadowRoot.querySelector('#shadow-closed-input').value;"
);
project.SendInfoToLog("closed input: " + val);

Кликнуть кнопку

instance.ActiveTab.MainDocument.EvaluateScript(
    "window.__closedShadowRoot.querySelector('#shadow-closed-btn').click();"
);

Прочитать поле пароля

string pass = instance.ActiveTab.MainDocument.EvaluateScript(
    "return window.__closedShadowRoot.querySelector('#shadow-closed-pass').value;"
);
project.SendInfoToLog("pass: " + pass);

Проверить что root доступен

string check = instance.ActiveTab.MainDocument.EvaluateScript(
    "return window.__closedShadowRoot ? 'доступен' : 'null';"
);
project.SendInfoToLog(check);

Использовать JsGet

string val = instance.JsGet(
    "window.__closedShadowRoot.querySelector('#shadow-closed-input')",
    "value"
);
project.SendInfoToLog(val);

Как искать утечку в реальных сайтах

Если window.__closedShadowRoot не существует — нужно искать где сайт сохраняет ссылку. Типичные места: глобальные переменные, кастомные свойства компонентов, React/Vue internals. Это задача для DevTools, не для ZennoPoster.