フォームの自動入力が届いてなかった話|画面に出ても送信は空

申し込みフォームの入力を、AIにやらせとります。自分の申し込みを自分で埋める、それだけの作業。同じ項目を毎回打つのはしんどいし、手やと打ち間違えるので。

それが先日、30分ほど溶けました。画面にはちゃんと入っとるのに、送信される中身が空。しかも正しいやり方、自分で作った手順書にちゃんと書いてありました。開かんかっただけで。

画面に出とる文字と、実際に送られる値は別物やった

先に用語をひとつだけ。フォームには目に見える入力欄と、目に見えん送信用の欄の2つがあることがあります。人が打つのは前者。サーバーに届くのは後者。打った文字を後者へ写す仕事は、画面の裏で動いとるプログラムがやっとる。

で、僕がやらせとったのは「見える方の欄に、文字を直接ねじ込む」やり方でした。人が打ったフリをさせるんやなくて、中身だけ書き換える。これが裏のプログラムから見ると、誰も何も打ってへんのと同じ。だから写す仕事がまともに動かん。始まらんこともあれば、1手遅れて動くこともある。

日付の欄は、始まらん方でした。画面には年月日がきれいに出とる。送信される値を覗いたら、年も月も日も、まるごと無い。

もっとタチが悪いのは、1つ前の値が送られるやつ

6万を入れると送信側は空、24万を入れると送信側に1つ前の6万が入る挙動を示した図
入れた値じゃなく、1つ前が送られてしまう罠

金額の欄は、1手遅れる方でした。空やなくてズレる

6万を入れる。送信側は前の値のまま。次に24万を入れる。送信側に6万が入る。いつも1個前が送られていく。画面と1手ズレたまま、そのまま進んでまう。

送信側を覗いた時、空やったら一発で分かるんです。何も入ってへんのやから。けど1つ前の値はそれっぽい数字が入っとる。送信側だけ見とったら違和感がない。ここがいちばんこわいとこでした。

入力できた、と、受け取られた、は別

直し方そのものは地味です。中身を書き換えるのをやめて、ブラウザを触る道具に元から付いとる入力機能を使う。人が打ったのと同じ合図が、裏まで届くやつです。それだけで日付や金額を含む4つの欄とも、送信用の欄まで入りました。

で、ここからが本題。直したあとに「ほんまに入ったか」をどう確かめるか。

画面の表示は、もう当てにできませんでした。ハイフン区切りで日付を渡すと、画面ではちゃんと漢字入りの年月日に整形される。ぱっと見、受け取ってもらえたように見える。

けど中身がまるごと消えとった、あの時の画面も同じ顔をしとった。表示が整うのと、中身が届くのは、別々に起きるんです。

結局、送信用の欄を全部読み出して、こっちが入れた数字と1つずつ並べて突き合わせました。スクショだけやと、さっきの1手ズレも見抜けません。

自動化のときに、毎回見るようにした2つ

  • 入力できた、と、受け取られた、は別。確かめるのは後者だけ
  • 証拠は画面やなくて、送信される側を直接読んで見る

自動化しとって一番あかんのは、止まることやないんやなと思いました。止まってくれたら、その場で気づけるので。今回みたいにそのまま送信できてまう方が、よっぽどタチ悪い。

気づけたのは、送信ボタンを押す前に中身を読んだからです。押すのは最後まで自分。ここだけは自動にせんでよかった。

あわせて読みたい

Playwrightの自動操作がWindowsで動かない罠3つ