Не могу получить доступ к ShadowRoot

Я хочу передать капчу на веб-сайте https://sirus.one/#play и мне нужно установить значение решенной капчи в textarea.g-recaptcha-response -> div.innerText. TextArea имеет ShadowRoot, где веб-сайт сохраняет ответ рекапчи.

Я попытался получить доступ к ShadowRoot следующим образом: document.querySelector("textarea.g-recaptcha-response").shadowRoot, но результат нулевой.

Если я распечатаю элемент в консоли, окажется, что ShadowRoot существует. Не могу получить доступ к ShadowRoot

Как получить теневой рут?

вы пробовали проверить документацию? Developer.mozilla.org/en-US/docs/Web/API/ShadowRoot

Lelio Faieta 26.06.2024 14:43

Вы уверены, что ShadowRoot был атакован с установленным режимом открытия? В противном случае он не будет доступен

Krzysztof Krzeszewski 26.06.2024 14:44
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
50
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Поскольку вы пытаетесь разгадать капчу, я думаю, что разумно предположить, что теневой корень не был прикреплен с помощью опции mode: open. Таким образом, вы не сможете получить к нему доступ, используя свойствоshadowRoot.

const div = document.querySelector('div');
const p = document.querySelector('p');

p.attachShadow({mode: 'open'});
div.attachShadow({mode: 'closed'});

console.info('Paragraph has accessible Shadow DOM:', !!p.shadowRoot); // true
console.info('Div has accessible Shadow DOM:', !!div.shadowRoot); // false
<p></p>
<div></div>

Это была моя ошибка. Я не могу получить доступ к ShadowRoot, созданному браузером. Решение состоит в том, чтобы просто изменить значение textarea: document.querySelector("#g-recaptcha-response").value = "123"

Другие вопросы по теме