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()
})()
希望对您有所帮助!
我正在尝试使用 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()
})()
希望对您有所帮助!