プログラミング初学者ものです。(独学)
あるサイトでフォームの自動入力のJSのscriptを組んで効率化を図りたいと考えました。
(tampermonkey でブラウザ上でJSを作動させています)
フォームの項目に値を入れ、送信ボタンを押すところまでなんとか書けましたが、送信ボタンを押すしたところ(※submit()でうまく行かなかったので、click()を使用)、「送信に失敗しました」とalertがでました。
以下のような、プログラムです。
document.getElementById("hoge").value = hogehoge;
document.querySelector("div.button").click(); //送信ボタン
手入力とjsによる入力ではどうやら挙動が違うことが原因ではないかと私は考えました。
1.手入力ではイベントが発火する(blurなど?)
2.そのイベントによりform,inputのng-classが変化している。
そこで、JSで手入力と同じ挙動が再現できれば、フォーム送信に成功するのではないかと考えたのですが、JSで手入力の再現は可能でしょうか? 可能であれば具体的にどのような形で記述すればいいのか例を挙げていただけないでしょうか?調べたのですが、突破できる気配がありません。
そのサイトではAngularJSを使用しているようです。(私がプログラムを勉強したのは4年ほど前なので間違ってたらすいません)
2. に関してですが下記のように変化しています。
【formのclass】
input-box ng-pristine buy-box ng-invalid ng-invalid-required
↓
input-box buy-box ng-dirty ng-valid-parse ng-valid ng-valid-required
【inputのクラス】
text-input ng-pristine ng-untouched ng-valid ng-valid-required
↓
text-input ng-valid ng-valid-required ng-dirty ng-valid-parse ng-touched
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/08 17:24