Пользовательский скрипт: click по элементам на чужом angular сайте
Страница полностью загружена, на ней есть таблица.
В таблице собрана информация за год и по месяцам. Вначале она отображает информацию только за год, одной строкой. По нажатию на ссылку в последнем столбце, она раскрывается, и отображается информация по месяцам. На рис. часть кода страницы. https://hostingkartinok.com/show-ima...a88375fb49a592 Пытаюсь программно раскрыть таблицу. Выполняю свой скрипт через букмарклет, а сам файл скрипта лежит на локальном веб сервере. let table = document.getElementsByClassName("table-cust table-cust-payment"); let col=table[1].children; let ref=col[4].children; let event = new MouseEvent("click"); console.log(ref[0].dispatchEvent(event)); Результат true, но таблица не раскрывается. Подскажите, возможно ли программно раскрыть эту таблицу, так как строк может быть очень много? И как лучше это сделать? |
Вы запутались в "детях",
1. нет rows 2. если смотреть на картину, то порядок другой <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <div class="table-cust table-cust-payment"> <div class="table-row"></div> <div class="table-row"> <div class="table-col"></div> <div class="table-col"></div> <div class="table-col"> <a href=""> <span>vvvv</span> </a> </div class="table-col"> </div> <div class="table-row"></div> </div> </body> <script> const table = document.getElementsByClassName("table-cust table-cust-payment") const rows=table[0].querySelectorAll('div.table-row'); console.log(rows); const cols=rows[1].querySelectorAll('div.table-col'); console.log(cols); const ref=cols[2].querySelector('a'); console.log(ref); const event = new MouseEvent("click"); setTimeout (()=>{ ref.dispatchEvent(event); }, 4000); </script> </html> Цитата:
Но лучше посмотриеть F12-Network, где видно запросы страницы и самостоятельно их сделать |
Уточняю.
1. Мой скрипт правильный, так как getElementsByClassName возвращает детей/строки. Сбил с толку фразой table. 2. Клик происходит, но вместо раскрытия таблицы, я перехожу по ссылке: "корень сайта" и плюс "#". Как раз та "решетка" которая находится в теге <a>. Может на чужом angular сайте у меня не получится программно раскрыть таблицу? Подскажите... |
Ну да. В обработчике клика должен вызываться preventDefault().
Без него будет переход по ссылки. |
Часовой пояс GMT +3, время: 06:53. |