お風呂の温度、何℃にしてますか?

会社で Google Chrome で使っているクラウドシステムがあるのですが、
画面に入力する日付のデフォルト値がいつも月初になっていて、
そこにいつも上期(4月1日)を入力しています。
その後に情報を取得する検索ボタンを押しています。(1日1回)

めんどくさいので、拡張機能を自作しgetElementById で
日付フィールドのオブジェクトを取得
日付フィールドの Value に値をセットすると
めでたく日付がセットされたのですが
その後 検索ボタンを押してもデフォルト日付の情報を表示します。

さらにチェックボックスのオブジェクトを取得し、
checked = true; を設定することで、画面上はチェックされたましたが、
やはり検索で出てくるデータは、チェックされない時のデータです。

ここでjavaScriptでセットした値をなぞるように、
キーボードからあえて同じ値を入力し、
チェックボックスも一度クリックしてチェックを外して、
改めてチェックすると、希望のデータを表示します。

このような場合、どうすれば全てjavaScriptでセットした内容を
画面の値にすることができるでしょうか。

取得したオブジェクトにクリックメソッドを発行してもダメなようでしたし、
あえて、キーボードで入力したかのようなメソッドを発行すると言う手も、
考えてみましたが、うまく行くようには思えません。

何か手はあるでしょうか。アドバイスをいただきたいと思います。
どうぞ、よろしくお願いします。

A 回答 (1件)

こんばんは



以前、似た様なことを行った経験がありますが、ご利用になっているシステムがどのような仕組みになっているかを調べる必要があると思われます。

私が行ったものは、「目的のウィンドウを開き、数十項目をまとめて入力する」というものでしたが・・
・途中で、新しいスレッド(=ウィンドウ)で開き直されてしまうため
 ウィンドウの取得をし直さなければならない
・項目に入力する毎に、ajaxでサーバに送っているので、スクリプトで
 まとめて入力してしまうと(速すぎるため)ほとんどが無視されてしまう
などの障害がありました。
たいした内容のシステムではないのですが、なかなかに重厚長大な仕組みにしてくれているので、手間がかかりました。

当時はIE利用のシステムだったので、JScriptで始めたのですが、Windowsハンドルの取得やその他もあって、最終的にはVBSにしてしまいました。
項目の入力に関しては、blurやchange、Inputイベントなどで試しても送信されないので、結局、Sendkeysでエンターを入力し適当な時間待つ、という超原始的な対処にしてしまいました。

それでも一応は使えるので、利用してはいたのですが・・
リモートの環境では通信に時間がかかるので待ち時間の誤差が大きく、安全側の設定にすると時間がかかりすぎるため、結局は、手入力に戻るという少々哀しいオチになってしまいましたけれど・・
    • good
    • 0
この回答へのお礼

なんと。1項目づつサーバに送信でしたか。
そう言えば日付項目に未来を入れるとエラーが出てたのでそうかもしれません。
しかも VBSでSendkeys されていたとはなかなか苦労されたんですね。
相手がクラウドシステムなので、作りについて聞けないのです。
アドバイスありがとうございます。大変参考になりました。

お礼日時:2022/08/16 07:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報