Puppeteerは非常に便利なJavaScriptライブラリです。このライブラリは、DevTools ProtocolまたはWebDriver BiDiを通じてChromeやFirefoxを高レベルのAPIで制御できるようにしています。デフォルトではヘッドレスモード(UIが表示されない)で動作します。
インストール方法は簡単です。npm、Yarn、pnpmなどのパッケージマネージャーを使用できます。たとえば、npm i puppeteer
を実行すると、インストール時に互換性のあるChromeがダウンロードされます。また、npm i puppeteer-core
を使用すると、Chromeをダウンロードせずにライブラリとしてインストールできます。
以下はPuppeteerの使用例です。
import puppeteer from 'puppeteer'; // または 'puppeteer-core'も可能
// ブラウザを起動し、新しい空白のページを開く
const browser = await puppeteer.launch();
const page = await browser.newPage();
// URLにページをナビゲートする
await page.goto('https://developer.chrome.com/');
// 画面サイズを設定する
await page.setViewport({width: 1080, height: 1024});
// 検索ボックスに入力する
await page.locator('.devsite-search-field').fill('automate beyond recorder');
// 最初の結果を待ってクリックする
await page.locator('.devsite-result-item-link').click();
// ユニークな文字列で完全なタイトルを検索する
const textSelector = await page.locator('text/Customize and automate').waitHandle();
const fullTitle = await textSelector?.evaluate(el => el.textContent);
// 完全なタイトルを出力する
console.log('The title of this blog post is "%s".', fullTitle);
await browser.close();
PuppeteerはWebアプリケーションの自動化やテストに役立ちます。