Puppeteer 如何检查页面上是否存在 class

Puppeteer How to check if class exists on a page

我正在尝试使用 puppeteer 检查网页上是否存在 class。例如,假设您想要 抓取 某些数据,并且您知道数据存储在某个 class 中。要获取数据,您需要使用 classname 来获取数据。这是我要使用的代码。没用。

        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.

我不确定您在哪里以及如何执行您的示例代码。 如果我们假设它在 'evaluate' 函数的回调中,这应该有效:

const puppeteer = require('puppeteer');

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

  await page.goto('https://whosebug.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()
})()

希望对您有所帮助!