■ 導入:最初はキー操作だけで動かそうとする依頼だった
今回紹介する案件は、
ブラウザ上で同じ操作を繰り返していく作業を自動化したいという依頼でした。
依頼者から最初に提示された方法は、
「すべてキー操作でカーソル移動して自動化する」
というものでした。
また、キーワードについても
「Excelのリストを順番に読みながら進めていく」
という方針が示されていました。
ただ、この時点では“どう読むのか”“どのタイミングで渡すのか”など、
運用の詳細はまだ固まっていない状態でした。
■ 課題:キー操作だけでは、ブラウザバックや画面遷移でズレが発生する
実際に画面遷移があるブラウザ操作では、
ブラウザバック
別ページへの遷移
読み込み速度の違い
によって、カーソル位置が簡単に飛んでしまうという問題があります。
最初の指示どおりに「すべてキー操作」で進めると、
フォーカス位置が毎回同じとは限らない
タイミングによって動作がズレる
一度ズレると連続処理が破綻する
という不安定さが避けられませんでした。
さらに、依頼者自身が気づいていない“想定外の挙動”もいくつかあり、
これらをそのままにすると「動く時と動かない時が混ざるスクリプト」になってしまう状況でした。
■ 改善:画像認識とキー操作を、操作ごとに最適に組み合わせる方式へ
そこで私は、
「全部キー操作」「全部画像認識」いずれにも寄せない
ハイブリッド方式を提案しました。
毎回位置が変わらない操作 → キー操作
ブラウザバック後など位置がズレやすい操作 → 画像認識で確実に押す
画像認識は類似度調整・補正・リトライで安定化
というように、
操作の種類ごとに最適な手段を選ぶ設計にしました。
この方式により、画面遷移の揺らぎでも動作が崩れにくくなり、
実運用に耐えられる安定性が確保できました。
さらに、依頼のメッセージに書かれていなかった挙動(戻る後のカーソル飛び等)を
こちら側で洗い出し、
「この挙動が起きた時は、どう動けば理想ですか?」
と依頼者にすべて確認したことで、
抜けのない自動化に仕上げています。
■ CSV読み込みに変更した理由:Excel方式の詳細が固まっていなかったから
最初の依頼方針では、
「Excelを開いた状態で、リストを順に読みながらブラウザ操作を進める」
という流れが想定されていました。
ただし、この部分の細かい指示──
Excelのどこを読むのか、読み込む単位、タイミング、操作手順──
は具体化されていませんでした。
そのまま実装すると、
Excelの状態に依存してしまう
自動化のステップが増えて不安定要因が増加
依頼者側の運用も煩雑になる
という可能性がありました。
そこで私は、
「検索キーワードを1列のCSVとして用意してもらえれば、
そのまま読み込んで自動化できますよ」
と提案し、
CSV読み込み方式 に切り替えました。
これにより、
運用が簡潔になり、スクリプト側も安定し、
「ブラウザ操作の自動化」に集中できる環境が整いました。
■ 成果:止まらない、ズレない、“実際のブラウザで使える自動化”に
完成したスクリプトは、
想定外の挙動が起きても止まらない
ハイブリッド構成により、操作位置がズレにくい
画像認識部分はリトライ・補正付きで安定
CSV読み込みで“準備→実行”が一気通貫
manualContinueで手動継続もできる(完全停止を避ける)
という、依頼者にとって
**「現実のブラウザで実用的に使える自動化」**になりました。
この案件で特に大きかったのは、
依頼者が気づいていない挙動もこちらで洗い出し、
そのたびに「理想動作」を確認して、設計に反映したこと。
これにより、
表面的な指示のとおりに作るのではなく、
実際の運用でストレスなく使える品質に仕上げることができました。
■ まとめ:最適な手段を“組み合わせる”のが、実用的な自動化の鍵
この案件は、
キー操作
画像認識
CSV読み込み
手動継続処理
など複数の手段を、
必要な場面に合わせて最適に組み合わせたことで成功した例でした。
「全部このやり方でやる」という固定観念ではなく、
“現場が安定して使える形はどれか” を優先して設計することの大切さを
改めて実感した案件でもあります。
次回も、依頼の裏にある目的を読み取り、
最適な自動化に落とし込んだ実例を紹介していきます。
▶「自分の作業も最適な形で自動化したい」「運用に合わせた設計をしてほしい」という方はこちら