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

Puppeteer完成表单填写后如何正确点击对应的Save保存按钮

Puppeteer点击Save按钮正确实现方案

原有代码错误原因

  • 选择器.MuiButtonBase-label不存在于目标DOM结构中,且目标按钮没有配置name="save"属性,完全无法匹配到目标元素
  • 初始等待的.MuiButton-label类同时匹配Cancel、Save两个按钮的子元素,定位不精准

正确实现代码

下面提供3种稳定的实现方案,可根据实际场景选择:

方案1:按按钮文本匹配(最稳定,不受类名、属性调整影响)

// 等待Save按钮加载完成后点击
await page.waitForXPath(`//button[.//span[text()='Save']]`)
const [saveBtn] = await page.$x(`//button[.//span[text()='Save']]`)
await saveBtn.click()

方案2:通过submit类型匹配(适合表单提交场景)

目标Save按钮的type属性为submit,Cancel按钮为button,可直接通过该属性区分:

await page.waitForSelector('button[type="submit"]')
await page.click('button[type="submit"]')

方案3:通过Material UI专属类名匹配

两个按钮的主题类不同,Save按钮使用MuiButton-containedPrimary类,Cancel按钮使用MuiButton-outlinedPrimary类:

await page.waitForSelector('.MuiButton-containedPrimary')
await page.click('.MuiButton-containedPrimary')

内容的提问来源于stack exchange,提问作者DEV_K

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 18:06:04