難しいです。私は毎日何百回も仕事に使うサードパーティのサイトを自動化するTampermonkey(chrome用バニラJSインジェクタープラグイン)スクリプトを書いています。私が立ち往生している部分は、私はAngularJS形式(以下のコード)を信じています。入力値を変更して提出する必要があるため、ウェブサイト上の表を更新することができます。それはサイトを再配置しないことに注意してください、それはajax/jquery/AngularJS(分かりません)で動作します。AngieJSフォームの第三者JS注射による難しいプログラムの投稿
私はトリッキーな部分が入力にあることに気付きました。 "ng-pristine ng-valid"はフォームを送信するために必要なAngularJSデータ検証のようですが、入力の値を変更した後、またはフォームを提出する方法もありません。値を変更すると動作しているようです。フォーム全体がiframe内にありますが、違いがあるかどうかはわかりません。
私はそれらの要素を参照するために簡単ですので、下記の要素のIDを追加しましたが、彼らは通常のコードには存在しない、私は私がしましたquerySelectors
<form id="form" ng-submit="updateTab()" class="ng-pristine ng-valid">
<div class="input">
<div class="input__container">
<input id="input" type="text" class="input ng-pristine ng-valid" ng-model="QueryParams.query">
<button id="button" class="button">Search</button>
</div>
</div>
</form>
によってそれらを得ます単純に値を設定し、そうのようなボタンをクリックする前に時間の多くのこのような物事:
document.getElementById("input").value = "some value";
document.getElementById("button").Click();
しかし、それは動作しません。私はまた、値の変更の後、データの検証のいくつかがあるようだが、まだそれを助けていないので、.click()の前に以下を試した。
document.getElementById("input").dispatchEvent(new Event("change"));
document.getElementById("input").onchange();
フォームを送信すると、ウェブサイトがリロードされますが、これは何も達成されません。