首页 > 解决方案 > Puppeteer 无法在特定的输入字段中写入

问题描述

我尝试使用 Puppeteer 在搜索字段(输入)中写入,但程序结束时没有在该字段中写入任何内容。这里的代码:

const browser = await puppeteer.launch({
    headless: false,
    slowMo: 100, // slow down by 250ms
});
const page = await browser.newPage();
await page.goto('https://cb01.tattoo/');
await page.waitForSelector('.form-control.mb-2.mr-sm-2.mb-sm-0');
console.log('passed');
await page.type('.form-control.mb-2.mr-sm-2.mb-sm-0', 'hello');
//await page.$eval('.form-control.mb-2.mr-sm-2.mb-sm-0', el => el.value = 'hello');
console.log('end');
//await browser.close();

我也尝试使用注释代码,但它无论如何都不起作用。泰寻求帮助。

标签: javascriptnode.jspuppeteer

解决方案


输入元素在隐藏元素内。您需要先取消隐藏父元素:

const browser = await puppeteer.launch({
    headless: false,
    slowMo: 100, // slow down by 250ms
});
const page = await browser.newPage();
await page.goto('https://cb01.tattoo/');
await page.waitForSelector('.form-control.mb-2.mr-sm-2.mb-sm-0');
console.log('passed');

await page.$eval('.mobileShow', el => el.style.display = 'block'); // Unhide parent.

await page.type('.form-control.mb-2.mr-sm-2.mb-sm-0', 'hello');
console.log('end');

推荐阅读