如何使用 Puppeteer 填充输入字段?

新手上路,请多包涵

我正在使用 Puppeteer 进行 E2E 测试,我现在正尝试使用以下代码填充输入字段:

 await page.type('#email', 'test@example.com');

它起作用了,但我发现电子邮件地址是一个字符一个字符地输入到字段中的,就好像真人在输入一样。

是否可以一次用电子邮件地址填写输入字段?

原文由 choasia 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 718
2 个回答

只需像这样设置输入值:

 await page.$eval('#email', el => el.value = 'test@example.com');

这是在维基百科上使用它的示例:

 const puppeteer = require('puppeteer');

(async () => {
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    await page.goto('https://en.wikipedia.org', {waitUntil: 'networkidle2'});

    await page.waitForSelector('input[name=search]');

    // await page.type('input[name=search]', 'Adenosine triphosphate');
    await page.$eval('input[name=search]', el => el.value = 'Adenosine triphosphate');

    await page.click('input[type="submit"]');
    await page.waitForSelector('#mw-content-text');
    const text = await page.evaluate(() => {
        const anchor = document.querySelector('#mw-content-text');
        return anchor.textContent;
    });
    console.log(text);
    await browser.close();
})();

原文由 Everettss 发布,翻译遵循 CC BY-SA 4.0 许可协议

另一种方式做

await page.focus('#email')
await page.keyboard.type('test54')

原文由 Sarath Ak 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题