Кукловод - как сделать клик по ссылке без навигации - PullRequest
0 голосов
/ 06 января 2020

Мне было просто интересно. У меня есть событие при нажатии на ссылку, но ссылка также переходит на другую страницу. Я хочу использовать puppeteer, чтобы щелкнуть ссылку, например, такую:

page.click('a.link')

Но после щелчка я хотел бы запретить навигацию и просто консоль записать событие в журнал. Можно ли щелкнуть ссылку без дальнейшей навигации с помощью кукловода?

Ответы [ 2 ]

1 голос
/ 06 января 2020

Похоже, ваш лучший вариант - перехватить запрос на загрузку новой страницы и отменить ее. page.setRequestInterception

await page.setRequestInterception(true);

page.on('request', request => {
  if (request.isNavigationRequest() && request.redirectChain().length !== 0) {
    request.abort();
  } else {
    request.continue();
  }
});

await page.click('a.link');
await page.setRequestInterception(false);
0 голосов
/ 06 января 2020

Вы можете использовать jQuery для предотвращения дефолта по ссылке, например, так:

<a href="https://google.com" id="no-track">click me </a>

$('#no-track').click(function(e){
            e.preventDefault();
            alert('clicked: '+$(this).attr('href'));
            return false;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...