🤖
puppeteer フォームの自動入力と送信の基本
puppeteerを使って、自動でログインフォームの入力と送信を行ってみます。
今回はこちらの簡易的なログインフォームで試してみます。
Puppeteerのセットアップ
まず、Puppeteerをプロジェクトにインストールします。
npm install puppeteer
自動化スクリプトの作成
次に、自動化のためのスクリプトを作成します。
以下のコードは、特定のWebサイトにアクセスし、ユーザー名とパスワードを入力してログインボタンをクリックする簡単な例です。
import puppeteer from 'puppeteer';
async function formSubmit(
url: string,
usernameSelector: string,
passwordSelector: string,
username: string,
password: string
) {
const browser = await puppeteer.launch({ headless: false });
const page = await browser.newPage();
await page.goto(url);
await page.type(usernameSelector, username);
await page.type(passwordSelector, password);
await page.click('button[type="submit"]');
}
formSubmit(
'https://ima-portfolio-mooway.vercel.app/auth/login',
'#email',
'#password',
'test@example.com',
'1111'
);
-
puppeteer.launch({ headless: false })
: Puppeteerでブラウザインスタンスを起動します。headless: false
オプションは、ブラウザのGUIを表示して実行するためのものです。 -
browser.newPage()
: 新しいブラウザページ(タブ)を開き、そのページを操作するためのPageオブジェクトを返すPromiseを返します -
page.goto(url)
: 指定されたURLにブラウザページをナビゲートします。 -
page.type(selector, text)
: 指定されたセレクタにマッチする入力フィールドにテキストを入力します。 -
page.click(selector)
: 指定されたセレクタにマッチする要素をクリックします。
コードを実行すると、以下のように自動でフォームが入力され、ログインボタンをクリックします。
仮のユーザー情報を入れているのでログインには失敗してます😺
puppeteerを使うことで簡単に自動入力や送信ができるので、ぜひ試してみてください!
Discussion