Puppeteer如何定位无ID属性的input表单元素并完成内容填充
你之前的代码选择器写法错误,直接写st100972会被识别为查找标签名为st100972的元素,自然无法匹配到目标input。你可以通过CSS属性选择器匹配元素的name、class等属性定位,无需修改前端源码:
场景1:无需触发输入事件,直接赋值即可
// 匹配name属性为st100972的input元素,直接修改值 await page.waitForSelector('input[name="st100972"]'); await page.$eval('input[name="st100972"]', el => el.value = '3');
如果担心页面有其他同名元素,可以组合class属性提升定位精度:
await page.waitForSelector('input[name="st100972"].ibro_sb'); await page.$eval('input[name="st100972"].ibro_sb', el => el.value = '3');
场景2:表单需要触发键盘输入事件才能走校验逻辑
用模拟真实输入的写法即可:
const targetInput = await page.waitForSelector('input[name="st100972"].ibro_sb'); // 全选原有值后删除 await targetInput.click({ clickCount: 3 }); await targetInput.press('Backspace'); // 输入目标值 await targetInput.type('3');
内容的提问来源于stack exchange,提问作者NightShadeTVN
相关产品推荐
相关产品推荐

