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

Sekotka

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

Sekotka

Client
Joined
Oct 7, 2015
Messages
48
Reaction score
20
Points
8
Попробуйте сделать через запись, или если никто не предложит решение - через пару часиков гляну
через запись он просто игнорирует это действие...
 

kagorec

Client
Joined
Aug 24, 2013
Messages
1,031
Reaction score
558
Points
113
XPATH клик через javascript, возможно на сайте мешает непобедимый покачто shadow-root

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

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

Sekotka

Client
Joined
Oct 7, 2015
Messages
48
Reaction score
20
Points
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
Joined
Nov 27, 2023
Messages
26
Reaction score
13
Points
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();
 
  • Thank you
Reactions: Sekotka
Joined
Jan 17, 2022
Messages
88
Reaction score
25
Points
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.
 

Attachments

  • 12.9 KB Views: 7
  • Thank you
Reactions: Sekotka

Alex91

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

Alex91

Известная личность
Read only
Joined
Aug 15, 2024
Messages
880
Reaction score
251
Points
63
Ага, еще клик по картинке предложите)
Была бы закрытая тень, поиск по картинке был бы единственным вариантом... Так что, ничего смешного в этом нет.

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

kagorec

Client
Joined
Aug 24, 2013
Messages
1,031
Reaction score
558
Points
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();
 
  • Thank you
Reactions: Sekotka

Sekotka

Client
Joined
Oct 7, 2015
Messages
48
Reaction score
20
Points
8
Спасибо всем большое!
 

Users Who Are Viewing This Thread (Total: 1, Members: 0, Guests: 1)