Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使单击操作在输入框中填充值之前等待?_Javascript_Node.js_Puppeteer - Fatal编程技术网

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

Javascript 如何使单击操作在输入框中填充值之前等待?,javascript,node.js,puppeteer,Javascript,Node.js,Puppeteer,我正在使用木偶师填充输入框,单击按钮并转到下一页。但问题是,有时输入值太长,在值完全插入到输入框之前,按钮被单击。如何解决这个问题 await page.keyboard.type('input value'); //input await page.click('#btn'); //button to clicked await page.waitForNavigation({ waitUntil: 'networkidle2' }); await page.waitFor(1000);

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

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

很抱歉,我不能添加注释,我真的需要知道在第一行代码之前是什么,但我假设是对您的输入的关注,所以会给您一个提示

问题出在键盘上。键入我们没有承诺,测试将继续运行。因此,我们需要删除focus和keyboard.type,并使用page.typeselector,text[,options]:

随着时间的推移,这些问题将变得越来越普遍,因此我在我的项目中也添加了20毫秒的减速;影响不大

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

这是可行的,但它创建了另一个错误:node:7939 UnhandledPromisejectionWarning:Unhandled promise拒绝id:1:error:Navigation Timeout Oversed:30000ms当我转到另一个页面时,它停止了。很好,问题出在另一个地方。很难知道我们没有所有的代码。但是首先检查waitForNavigation,使用这两行中的一行:wait page.waitForNavigation{waitUntil:'networkidle0'};或者等待page.waitForNavigation{waitUntil:'load'};。个人负担对我来说很有用。
puppeteer.launch({slowMo: 20}).then(async browser => {...}