Не удается найти элемент никаким образом

Sekotka

Client
Регистрация
07.10.2015
Сообщения
48
Благодарностей
20
Баллы
8
Здравствуйте! Удивительная ситуация. Есть простая форма принятия кук на сайте bandcamp .com , но клик по ней стал головной болью. Ни через классические пути, ни через xpath Зенка не видит. Даже xpath скопированный из веб инструментов браузера или вручную собранный регулярками и без - без толку. Помогите пожалйуста. Сама кнопка выглядит в коде так, но вроде все просто, а фактически что-то идет не так.<button data-v-741feff8="" data-v-38bc7ee1="" class="g-button"><!----><!---->Accept all</button>
 
Регистрация
17.01.2022
Сообщения
88
Благодарностей
25
Баллы
18
Попробуйте сделать через запись, или если никто не предложит решение - через пару часиков гляну
 

Sekotka

Client
Регистрация
07.10.2015
Сообщения
48
Благодарностей
20
Баллы
8

kagorec

Client
Регистрация
24.08.2013
Сообщения
1 031
Благодарностей
558
Баллы
113
XPATH клик через javascript, возможно на сайте мешает непобедимый покачто shadow-root

Например в кубик JavaScript
JavaScript:
const xpath123 = "//button[contains(text(), 'Accept') and contains(@class, 'g-button')]";
document.evaluate(xpath123, document).iterateNext()?.click();
--

Попробуйте сделать через запись, или если никто не предложит решение - через пару часиков гляну
Ага, еще клик по картинке предложите)
 
Последнее редактирование:

Sekotka

Client
Регистрация
07.10.2015
Сообщения
48
Благодарностей
20
Баллы
8
XPATH клик через javascript, возможно на сайте мешает непобедимый покачто shadow-root

Например в кубик JavaScript
JavaScript:
const xpath123 = "//button[contains(text(), 'Accept') and contains(@class, 'g-button')]";
document.evaluate(xpath123, document).iterateNext()?.click();
--


Ага, еще клик по картинке предложите)
Спасибо, но почему-то не отрабатывает (поставил выполнять js на текущей странице)...
 

Hanger

Client
Регистрация
27.11.2023
Сообщения
26
Благодарностей
13
Баллы
3
Здравствуйте! Удивительная ситуация. Есть простая форма принятия кук на сайте bandcamp .com , но клик по ней стал головной болью. Ни через классические пути, ни через xpath Зенка не видит. Даже xpath скопированный из веб инструментов браузера или вручную собранный регулярками и без - без толку. Помогите пожалйуста. Сама кнопка выглядит в коде так, но вроде все просто, а фактически что-то идет не так.<button data-v-741feff8="" data-v-38bc7ee1="" class="g-button"><!----><!---->Accept all</button>
JavaScript:
document.querySelector("#propOpenWrapper > page-footer").shadowRoot.querySelector("#cookie-control-dialog > div.content.g-text-body-responsive > div.buttons > button:nth-child(1)").click();
 
  • Спасибо
Реакции: Sekotka
Регистрация
17.01.2022
Сообщения
88
Благодарностей
25
Баллы
18
XPATH клик через javascript, возможно на сайте мешает непобедимый покачто shadow-root

Например в кубик JavaScript
JavaScript:
const xpath123 = "//button[contains(text(), 'Accept') and contains(@class, 'g-button')]";
document.evaluate(xpath123, document).iterateNext()?.click();
--


Ага, еще клик по картинке предложите)
ну не, это слишком. Я бы вообще просто профиль сохранил уже с нажатой кнопкой или профиль папку, это самое простое.

но вот простое решение, в DOM проверяет любое сочетание слов из плашки, эмулируем TAB через C# (в кубике не работает почему то), нажимаем Enter.
 

Вложения

  • 12,9 КБ Просмотры: 5
  • Спасибо
Реакции: Sekotka

Alex91

Известная личность
Read only
Регистрация
15.08.2024
Сообщения
880
Благодарностей
251
Баллы
63
Здравствуйте! Удивительная ситуация. Есть простая форма принятия кук на сайте bandcamp .com , но клик по ней стал головной болью. Ни через классические пути, ни через xpath Зенка не видит. Даже xpath скопированный из веб инструментов браузера или вручную собранный регулярками и без - без толку. Помогите пожалйуста. Сама кнопка выглядит в коде так, но вроде все просто, а фактически что-то идет не так.<button data-v-741feff8="" data-v-38bc7ee1="" class="g-button"><!----><!---->Accept all</button>
И не найдет, так как эта кнопка в контейнере шадоврут.
Но есть и хорошие новости, это открытый тип, поэтому сможешь найти элемент по xpath на js и в нем же кликнуть.
На форуме были темы по этой теме, поищи.
 

Alex91

Известная личность
Read only
Регистрация
15.08.2024
Сообщения
880
Благодарностей
251
Баллы
63
Ага, еще клик по картинке предложите)
Была бы закрытая тень, поиск по картинке был бы единственным вариантом... Так что, ничего смешного в этом нет.

Естественно, мы не рассматриваем снифинг запросов, а только клики в браузере ;-)
 
  • Спасибо
Реакции: Sekotka

kagorec

Client
Регистрация
24.08.2013
Сообщения
1 031
Благодарностей
558
Баллы
113
Спасибо, но почему-то не отрабатывает (поставил выполнять js на текущей странице)...
shadowRoot :-)
Вариант #1
JavaScript:
function queryShadow(selector, root = document) {
  const elems = Array.from(root.querySelectorAll(selector));
  for (const elem of root.querySelectorAll('*')) {
    if (elem.shadowRoot) {
      elems.push(...queryShadow(selector, elem.shadowRoot));
    }
  }
  return elems;
}

queryShadow('button.g-button:not(.outline)').forEach(btn => btn.click());
Вариант #2
JavaScript:
document
  .querySelector('#propOpenWrapper page-footer')
  ?.shadowRoot
  ?.querySelector('button:not([class*="outline"])')
  ?.click();
 
  • Спасибо
Реакции: Sekotka

Sekotka

Client
Регистрация
07.10.2015
Сообщения
48
Благодарностей
20
Баллы
8
Спасибо всем большое!
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)