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

Puppeteer无法找到ID为user[real_name]的元素,是否由方括号导致?

问题原因分析

是的,该报错确实是ID中的方括号导致的。
CSS选择器语法中,方括号[]是属性选择器的专用标识,你写的#user[real_name]会被CSS解析器识别为「匹配ID为user、同时存在real_name属性的元素」,而非你期望的「ID为user[real_name]的元素」,因此Puppeteer无法定位到对应元素。

解决方法
  • 方法1:转义特殊字符
    CSS中可以用反斜杠\转义特殊符号,由于JS字符串中反斜杠本身也需要转义,因此需要写两个反斜杠,修改后的代码如下:
    await page.$eval('#user\\[real_name\\]', el => el.value = realName);
    
  • 方法2:使用ID属性精确匹配(更推荐,无需处理转义)
    直接用属性选择器完全匹配ID的值,不需要转义任何特殊字符,写法更清晰不易出错:
    await page.$eval('[id="user[real_name]"]', el => el.value = realName);
    

修改前可以先在浏览器控制台执行对应的document.querySelector语句验证选择器是否生效,确认能匹配到元素后再写入Puppeteer代码即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 00:06:07