Кукловод — Щелчок по тегу за текстом

#node.js #puppeteer

#node.js #кукловод

Вопрос:

Я совсем новичок в puppeteer и застрял, пытаясь щелкнуть по элементу. На изображении это элемент «i», на который я хочу нажать.

Я хочу щелкнуть по элементу, но перед ним есть пробел nb

Когда я пытаюсь щелкнуть по нему, я получаю сообщение об ошибке «Узел либо не виден, либо не является HTMLElement». Я думаю, это не видно, потому что перед ним есть пробел nb.

Есть ли способ по-прежнему нажимать на него? Когда я нажимаю на него вручную, это работает, поэтому я думаю, что puppeteer также сможет это сделать?

Спасибо, Бенни

Комментарии:

1. Можете ли вы показать какой-нибудь код?

Ответ №1:

После довольно долгого тестирования я нашел способ, как щелкнуть по нему. Во-первых, это не сработало:

 page.click(selector)
  

Это вызвало ошибку, указанную ранее.

Что сработало сейчас, так это:

 page.evaluate(function (selector) {

  const elements = document.querySelectorAll(selector);    
  elements.forEach((element) => {
    element.click();
  });

}, selector);
  

Не уверен, почему элемент появляется несколько раз. Он должен быть там только один раз.

Я не эксперт в puppeteer, но рад, что это сработало. Может быть, это поможет кому-то еще.