EvaluateScript — JS в ZennoPoster
Единственный способ работать с Shadow DOM — выполнить JavaScript прямо в браузере. Для этого используется EvaluateScript.
Содержание
Почему именно JS для Shadow DOM
Стандартные методы ZennoPoster (FindElementById и др.) ищут элементы только в основном документе. Shadow DOM — изолированное дерево, они его не видят. EvaluateScript выполняет код в контексте страницы и добирается до shadow root без ограничений.
Сравнительная таблица
| Задача | JS |
|---|---|
| Прочитать свойство элемента | return el.value / return el.innerHTML |
| Прочитать HTML-атрибут | return el.getAttribute('name') |
| Записать значение | el.value = '...' |
| Кликнуть | el.click() |
| Вернуть несколько значений | return JSON.stringify({...}) |
| Open shadow root | host.shadowRoot.querySelector(...) |
| Closed shadow root | window.__closedShadowRoot.querySelector(...) |