1. ホーム
  2. javascript

[解決済み] パペッティアボタンを押す

2022-03-05 15:22:27

質問

によると https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#pagepresskey-options Puppeteerを使うと、キーボードのボタンを押すことをシミュレートできます。

以下は、その内容です。

// First, click the search button
await page.click('#outer-container > nav > span.right > span.search-notification-wrapper > span > form > input[type="text"]');
// Focus on the input field
await page.focus('#outer-container > nav > span.right > span.search-notification-wrapper > span > form > input[type="text"]');
// Enter some text into the input field
await page.type("Bla Bla");
// Press Enter to search -> this doesn't work!
await page.press("Enter");

ボタンを押しても何も出てきません。基本的に無視されます。

フォームを送信するためのEnterキーをシミュレートするにはどうすればよいですか?

どのように解決するのですか?

やっとわかったんだ。同じフォームの中に、タイプがsubmitのアンカー要素を見つけたのです。それをクリックすると、フォームが送信されました。

以下は、私が使用したコードです。

const form = await page.$('a#topbar-search');
await form.evaluate( form => form.click() );

また、evalの代わりに$evalメソッドを使用することもできます。

await page.$eval( 'a#topbar-search', form => form.click() );