/
Вопросы и ответы
/
JavaScript
/

Как автоматизировать клик по ссылке с помощью javascript

Как автоматизировать клик по ссылке с помощью javascript

2 года назад

Nikolai Gagarinov

Ответы

0

Одним из самых простых способов автоматизации клика по ссылке является использование метода click(), который доступен для элементов DOM. Вот пример:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Автоматизация клика</title>
</head>
<body>
    <a id="myLink" href="https://example.com" target="_blank">Перейти на Example.com</a>
    <button id="autoClick">Автоматически кликнуть по ссылке</button>

    <script>
        document.getElementById('autoClick').addEventListener('click', function() {
            document.getElementById('myLink').click();
        });
    </script>
</body>
</html>

В этом примере, когда вы нажимаете на кнопку "Автоматически кликнуть по ссылке", происходит клик по ссылке с ID myLink.

Если вы хотите, чтобы клик произошел через определенный интервал времени, вы можете использовать setTimeout:

1
2
3
setTimeout(function() {
    document.getElementById('myLink').click();
}, 3000); // Клик произойдет через 3 секунды

Автоклик по таймеру

Если вы хотите, чтобы клик происходил регулярно, можно использовать setInterval:

1
2
3
setInterval(function() {
    document.getElementById('myLink').click();
}, 5000); // Клик будет происходить каждые 5 секунд

Если клик по ссылке должен происходить в ответ на какое-то событие, вы можете перехватить это событие и вызвать клик на ссылке:

1
2
3
4
5
document.addEventListener('mousemove', function(event) {
    if (event.clientX < 100 && event.clientY < 100) {
        document.getElementById('myLink').click();
    }
});

2 года назад

Ivan Gagarinov

0

Кликнуть по ссылке из кода можно методом click():

1
2
const link = document.querySelector('a.download');
link.click();

Браузер выполнит переход по ссылке и вызовет все обработчики click, как при клике мышью.

Найти ссылку по тексту

1
2
3
4
const link = [...document.querySelectorAll('a')]
  .find((a) => a.textContent.trim() === 'Скачать отчёт');

link?.click();

?. не даёт коду упасть, если ссылки на странице нет.

Клик после загрузки или с задержкой

1
2
3
4
5
document.addEventListener('DOMContentLoaded', () => {
  setTimeout(() => {
    document.querySelector('#next')?.click();
  }, 2000);
});

Если элемент появляется позже, например после ответа сервера, дождитесь его через MutationObserver или проверяйте наличие в setInterval.

Через dispatchEvent

Некоторые фреймворки слушают события мыши, например mousedown. Тогда отправьте событие вручную:

1
2
const event = new MouseEvent('mousedown', { bubbles: true });
document.querySelector('.menu-item').dispatchEvent(event);

Ограничения браузера

  • Клик из кода по ссылке с target="_blank" без действия пользователя блокировщик всплывающих окон может отменить.
  • Скрипт на одной вкладке не управляет страницей другого сайта: так работает политика одного источника (same-origin policy).
  • В консоли DevTools код работает только до перезагрузки страницы.

Автоматизация чужих сайтов

Для сценариев «открыть сайт, кликнуть, заполнить форму» используют Playwright или Puppeteer:

1
2
3
// Playwright
await page.goto('https://example.com');
await page.getByRole('link', { name: 'Подробнее' }).click();

Для регулярных действий на одном сайте подойдёт расширение Tampermonkey: оно запускает ваш скрипт при каждом открытии страницы.

Работу с DOM и событиями разбирают в бесплатном курсе «Основы JavaScript».

8 дней назад

Никита Вихров

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845