Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Два клика на 2 страницах (https://javascript.ru/forum/events/84538-dva-klika-na-2-stranicakh.html)

ronaldo 11.10.2022 12:42

Два клика на 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')


Что посоветуете?

Nexus 11.10.2022 13:07

Ваш скрипт "умирает" после перехода на новую страницу, поэтому добавляйте свой скрипт на каждую страницу, смотрите в скрипте какая страница сейчас загружена и переходите по нужной ссылке.

ronaldo 11.10.2022 15:15

Так вот как раз интересует, как сделать чтобы ничего не отслеживать.
А выполнить одинаковый блок кода на двух страницах.

И почему в ручном режиме все нормально.

Белый шум 12.10.2022 07:53

ronaldo,
Либо писать своё расширение (аддон) к браузеру, либо посмотрите в сторону userscripts - может быть они позволяют такое.

ronaldo 17.10.2022 08:34

Как дождаться полной загрузки страницы
и только потом продолжить выполнение внешнего скрипта?

рони 17.10.2022 08:48

Цитата:

Сообщение от ronaldo
Как дождаться полной загрузки страницы

https://learn.javascript.ru/onload-ondomcontentloaded

ronaldo 17.10.2022 11:30

Такой код:

while (document.readyState != 'complete') {
} ;
console.log (" Страница загружена ");

var currentTime = new Date().getTime();

while (currentTime + 10000 >= new Date().getTime()) {
};

console.log (" Прошло 10 секунд ");

Необходимо после загрузки страницы продолжить выполнение например через 10 сек.
Страница открывается, но индикатор загрузки страницы продолжает отображаться пока не появится сообщение Прошло 10 секунд.
Но если страница загрузилась, почему отображается на вкладке индикатор загрузки.

Или как по другому это реализовать?

ronaldo 17.10.2022 11:40

Уточнение.

Индикатор загрузки страницы продолжает отображаться и только после 10 секунд происходит переход на другую страницу в браузере.


Часовой пояс GMT +3, время: 08:16.