function deepQuerySelectorAll(selector, root = document, results = []) {
root.querySelectorAll(selector).forEach(el => results.push(el));
root.querySelectorAll('*').forEach(el => {
if (el.shadowRoot) {
deepQuerySelectorAll(selector, el.shadowRoot, results);
}
});
return results;
}
function deepClickNth(selector, index = 0) {
const elements = deepQuerySelectorAll(selector);
if (elements.length > index) {
elements[index].click();
console.log(`✅ Клик по ${index+1}-му элементу ${selector}`);
} else {
console.error(`❌ Нет ${index+1}-го элемента для ${selector}, найдено ${elements.length}`);
}
}
function uncheckIfChecked(selector, index = 0) {
const elements = deepQuerySelectorAll(selector);
if (elements.length > index) {
const el = elements[index];
const isChecked = el.hasAttribute('checked') || el.checked;
if (isChecked) {
console.log(`☑ Чекбокс ${index+1} включён → снимаем`);
el.click();
} else {
console.log(`⬜ Чекбокс ${index+1} уже снят → ничего не делаем`);
}
} else {
console.error(`❌ Нет ${index+1}-го элемента для ${selector}, найдено ${elements.length}`);
}
}
// Снять только если включён второй чекбокс
uncheckIfChecked('cr-checkbox#checkbox', 1);
// Подождать 500 мс и только потом кликнуть "Очистить"
setTimeout(() => {
deepClickNth('cr-button#clearButton');
}, 500);