You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Puppeteer点击复选框报错“Node is either not clickable or not an Element”的问题排查请求

Puppeteer点击复选框报错“Node is either not clickable or not an Element”的问题排查请求

各位好,我在用Puppeteer自动化点击页面上的复选框时遇到了报错,错误提示是:

Error: Node is either not clickable or not an Element

奇怪的是,我已经确认选择器是有效的,而且用page.evaluate()直接调用DOM的click()方法就能正常触发点击,唯独用Puppeteer自带的page.click()会报错,想请教下这是什么原因,有没有不用page.evaluate()的解决办法?

相关DOM结构

<div class="input-container"> 
  <label class="st-checkbox" aria-checked="false"> 
    <input class="st-checkbox__input paymentType" data-val="true" data-val-required='"IsAppTicket" måste anges.' id="IsAppTicket" name="IsAppTicket" tabindex="0" type="checkbox" value="true" /> 
    <span class="st-checkbox__checkmark"></span> 
  </label> 
</div>

出现错误的Puppeteer代码

const browser = await puppeteer.launch({ headless: true, })
const page = await browser.newPage()
await page.setViewport({ width: 1920, height: 1080 })
await page.goto(URL)
await page.screenshot({ path: 'screenshots/0.png' })
await page.click('button#CybotCookiebotDialogBodyButtonDecline')
await page.screenshot({ path: 'screenshots/1.png' })
await page.waitForSelector('input#IsAppTicket')
await page.click('input#IsAppTicket') // 此处触发报错:Node is either not clickable or not an Element
await page.screenshot({ path: 'screenshots/2.png' })
await browser.close()

可以正常工作的替代方案

我试了用page.evaluate()直接操作DOM,是可以成功点击的:

await page.evaluate(() => {
  document.querySelector('input#IsAppTicket').click() // 完全正常
})

有没有大佬知道这是哪里出了问题?怎么能让page.click()正常工作呢?

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.07 08:14:30