Softex CelwareTech Blog
バニラJS Webアプリ2026-09-25

Chrome拡張でSPAの入力モーダルを安全に自動操作する

SPAの登録画面を自動操作するとき、画面状態の確認、日付と時刻の検証、候補選択の待機、確認モーダル処理を組み合わせて誤登録を防ぐ方法を解説します。

Chrome拡張機能SPAモーダル自動入力

SPAの入力画面は、HTMLを一度読み込んだ後も画面状態が非同期に変わります。要素が存在するだけで操作を進めると、別画面のボタンを押したり、表示前の候補を選んだりするおそれがあります。

画面上の操作経路を使う

日付や時刻を登録するとき、フレームワーク内部の状態を直接書き換えるより、日付セルなど画面上の要素を操作してモーダルを開く方が、画面とアプリ状態のずれを避けやすくなります。モーダルが開いた後に対象日を読み直し、意図した日付と一致することを確認してから入力します。

各段階は、要素を見つける、表示され操作可能か確認する、操作する、結果を画面から検証する、に分けます。固定時間のsleepだけに頼らず、候補リストに目的の値が現れるまで待ちます。選択後も入力欄や選択表示の値を確認します。

async function waitFor(test, timeoutMs = 5000) {
  const end = Date.now() + timeoutMs;
  while (Date.now() < end) {
    const value = test();
    if (value) return value;
    await new Promise(resolve => setTimeout(resolve, 100));
  }
  throw new Error('画面の準備がタイムアウトしました');
}

失敗を局所化する

複数件を連続登録する場合、1件ごとの開始・完了・失敗を記録します。既知の一時エラーはその項目だけ再試行し、同じ失敗が続いたら全体を停止します。誤った画面状態で後続処理を続けるより、停止して状況を返す方が安全です。

バックグラウンドタブではタイマーが遅延することがあります。進捗が止まったように見える処理は、対象タブを前面にして再確認できる設計にします。

まとめ

SPA自動化では内部状態を推測せず、画面の遷移と表示値を確認しながら進めます。待機、検証、項目単位の失敗処理を分けることで、誤登録と原因不明の停止を減らせます。

関連記事

この技術で業務改善しませんか?

Excel VBA・GAS・Webアプリで業務の自動化ツールを開発しています。 「こんなことできる?」というご相談だけでもお気軽にどうぞ。

無料相談はこちら →