如何在输入框填充值之前使点击操作等待?

时间:2017-11-20 18:55:39

标签: javascript node.js puppeteer

我正在使用Puppeteer填充输入框并单击按钮转到下一页。但问题是有时输入值太长而且在值完全插入输入框之前,单击按钮。如何解决这个问题。

await page.keyboard.type('input value'); //input 
await page.click('#btn'); //button to clicked
await page.waitForNavigation({ waitUntil: 'networkidle2' });
await page.waitFor(1000);

1 个答案:

答案 0 :(得分:1)

抱歉,我无法添加评论,我真的需要知道第一行代码之前的内容,但我认为是关注您的输入,所以会给你一个提示。

问题出在keyboard.type我们没有承诺,测试继续运行。因此,我们需要删除focuskeyboard.type,然后使用page.type(selector, text[, options])

await page.type('#id_input', 'long input value');

这个问题会随着时间的推移而变得很普遍,所以我在项目中加入了20毫秒的减速;不是一个巨大的影响。

puppeteer.launch({slowMo: 20}).then(async browser => {...}