Кукловод Как проверить, существует ли класс на странице - PullRequest
0 голосов
/ 24 апреля 2020

Я пытаюсь использовать кукловод, чтобы проверить, существует ли класс на веб-странице. Например, давайте просто скажем, что вы хотели удалить определенные данные и знали, что данные хранятся в определенном классе. Чтобы получить данные, вам нужно использовать имя класса, чтобы получить их. Вот код, который я пытаюсь использовать. Это не работает.

        let pageClicked = document.querySelector('.classIAmTryingToFind')

        if(pageClicked){
            console.log('False')
            await browser.close() 
        }else{
            console.log('True')
            await browser.close() 
        }

Я получаю эту ошибку при запуске кода.

UnhandledPromiseRejectionWarning: Error: Protocol error (Runtime.callFunctionOn): Target closed.

1 Ответ

0 голосов
/ 24 апреля 2020

Я не уверен, где и как вы выполняете свой пример кода. Если мы предположим, что он находится внутри обратного вызова функции 'define', это должно сработать:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch()
  const page = await browser.newPage()

  await page.goto('https://stackoverflow.com/', { waitUntil: 'networkidle0' }) // check networkidle0 parameter and others here: https://pptr.dev/#?product=Puppeteer&version=v2.1.1&show=api-pagegotourl-options
  const pageClicked = await page.evaluate(() => {
    return !!document.querySelector('.classIAmTryingToFind') // !! converts anything to boolean
  })
  if (pageClicked) { // you had the condition reversed. Not sure if it was intended.
    console.log('True')
  } else {
    console.log('False')
  }
  await browser.close()
})()

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...