Два клика на 2 страницах
Добрый день.
Подскажите причину. На определенном сайте есть эти необходимые элементы. Хочу нажать скриптом на необходимую ссылку на одной странице, перейти на другую страницу и также нажать на аналогичную ссылку на второй странице. Если выполнить этот блок кода в консоли Google Chrome как бы вручную, сначала один раз, дождаться перехода на другую страницу (пара секунд) и потом еще раз на другой странице - все нормально. var getTags = document.getElementsByClassName("prev"); console.log (getTags.length); console.log (getTags[0].firstChild.getAttribute("href")); getTags[0].firstChild.click(); Но если выполнить все вместе вот так : var getTags = document.getElementsByClassName("prev"); console.log (getTags.length); console.log (getTags[0].firstChild.getAttribute("href")); getTags[0].firstChild.click(); console.log (1); await new Promise(resolve => setTimeout(resolve, 15000)); console.log (2); var getTags = document.getElementsByClassName("prev"); console.log (getTags.length); console.log (getTags[0].firstChild.getAttribute("href")); getTags[0].firstChild.click(); То выполнение останавливается после перехода на вторую страницу и со второй страницы перехода нет. Ошибка такая TypeError: Cannot read properties of undefined (reading 'requestContent') Что посоветуете? |
Ваш скрипт "умирает" после перехода на новую страницу, поэтому добавляйте свой скрипт на каждую страницу, смотрите в скрипте какая страница сейчас загружена и переходите по нужной ссылке.
|
Так вот как раз интересует, как сделать чтобы ничего не отслеживать.
А выполнить одинаковый блок кода на двух страницах. И почему в ручном режиме все нормально. |
ronaldo,
Либо писать своё расширение (аддон) к браузеру, либо посмотрите в сторону userscripts - может быть они позволяют такое. |
Как дождаться полной загрузки страницы
и только потом продолжить выполнение внешнего скрипта? |
Цитата:
|
Такой код:
while (document.readyState != 'complete') { } ; console.log (" Страница загружена "); var currentTime = new Date().getTime(); while (currentTime + 10000 >= new Date().getTime()) { }; console.log (" Прошло 10 секунд "); Необходимо после загрузки страницы продолжить выполнение например через 10 сек. Страница открывается, но индикатор загрузки страницы продолжает отображаться пока не появится сообщение Прошло 10 секунд. Но если страница загрузилась, почему отображается на вкладке индикатор загрузки. Или как по другому это реализовать? |
Уточнение.
Индикатор загрузки страницы продолжает отображаться и только после 10 секунд происходит переход на другую страницу в браузере. |
Часовой пояс GMT +3, время: 22:50. |