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

标签 javascript node.js google-chrome-devtools puppeteer e2e-testing

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

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

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

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

最佳答案

只需像这样设置输入值:

await page.$eval('#email', el => el.value = 'test@example.com');
以下是在 Wikipedia 上使用它的示例:
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();
})();

关于javascript - 如何使用 Puppeteer 填充输入字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47966510/

相关文章:

javascript - 用另一个词替换文本中的词的正则表达式

javascript - 在 AngularJS 中如何从服务本身内部的回调修改服务属性

javascript - 谷歌图表传奇堆积如山

node.js - Mocha 正在复制对象的值,因此无法更新它

node.js - 如何在node.js中从readfile缓冲区将ISO-8859-1转换为UTF-8

javascript - KendoDropDownList 选项数据项

c++ - ofstream 不创建文件(Node.js 插件)

javascript - 为什么 Chrome 显示一个值在它被删除之前从数组中删除?

javascript - 为什么我的自定义元素的所有 css 在 Chrome 开发工具中都显示为用户代理样式表?

google-chrome - Chrome DevTools 协议(protocol) - 拦截和修改 websocket 请求