2017-11-20 7 views
0

私は人形を使って入力ボックスに入力し、ボタンをクリックして次のページに進みます。しかし問題は、入力値が長すぎることがあり、値が入力ボックスに完全に挿入される前に、ボタンがクリックされることです。この問題を解決する方法。私はコメントを追加するカント申し訳入力ボックスに値が入力される前に、クリックアクションを待機させる方法はありますか?

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

答えて

1

、私は実際にコードの最初の行の前にあるかを知る必要があるが、私はそうあなたにヒントを与えるだろう、あなたの入力に焦点を当てていると仮定します。

問題はkeyboard.typeにありますが、私たちは約束がなく、テストは継続しています。だから我々はpage.type(selector, text[, options])focuskeyboard.typeを削除し、使用する必要がありますので、私はまた、20ミリ秒の私のプロジェクトにダウンスローを追加

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

この問題は、時間の経過とともに共通となります。巨大な影響ではありません。作品

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

が、それは別のエラー作成:(ノード:7939)UnhandledPromiseRejectionWarning:未処理の約束拒否(拒否ID:1):エラー:ナビゲーションのタイムアウトが超過:I後藤他のページ、それはそこに停止したときに30000msが を超えました。 – Kais

+0

完璧、別の場所に問題があります。それが知りにくいのは、すべてのコードなしだった。しかし、waitForNavigationを最初にチェックすると、この2つの行を使用します: 'wait wait:' 'wait ';個人的な負荷が私のために働く。 –

関連する問題