時間待ちに頼らず、“状態を見て動く”自動返信スクリプトを作った話
■ 導入:一覧から順に、自動で返信していきたいという相談今回紹介するのは、あらかじめ用意したリストに基づいて、ブラウザ上で自動返信操作を行っていくスクリプトの案件です。依頼者の方は、返信対象ごとに「URLに入れる文字列」とそれに対応する「返信文」を replies.tsv にまとめており、それを元に intent URL を開いて返信画面を出し、送信まで自動化したいという要望でした。見た目はシンプルな「自動返信」の相談ですが、実際には ネットワーク遅延や画面の状態変化に左右されない“確実な動作” が求められる案件でした。■ 課題:時間待ちだけでは、ネットワークや画面の揺らぎに対応できない自動化でよくやりがちなのは、「intentで画面を開く → ○秒待つ → Tabで移動 → 送信」という、“決め打ちの時間待ち”だけで流れを作る方法です。しかし、この方法には大きな弱点があります。回線状況やサーバーの混雑によって、画面の表示時間が変わる返信入力欄が出てくるタイミングが一定ではない送信が終わるまでの時間も毎回同じとは限らないつまり、「○秒待ったから大丈夫だろう」では、いつかズレる ということです。依頼者も「できるだけ確実に送りたい」という意識を持っていたので、ここは時間待機だけに頼らず、画面の状態そのものを見て判断できる仕組みが必要でした。■ 改善①:intentウィンドウの“差分”を見て、今の状態を判定するこの案件でまずこだわったのは、intentウィンドウの状態を「差分」で判定することです。具体的には、ウィンドウタイトルの変化などを利用して、「返信入力が可能な状態」 なのか、「
0