JAVAのinput onclickでポップアップした画面の操作

Webでファイルをアップロードする操作を行わせたいのですが、
ウェブレコーディングを利用して、
input onclick でポップアップした画面から「ファイルを開く」を選択しても、
ファイルを開くダイアログ(PC上のファイルを指定する画面)が表示されません。

要素としては取得できてはいるようなのですが、
実行するとファイル指定の画面が開かないという状態です。

改善方法をご教示いただけないでしょうか。

pic

こんにちは

原因の切り分けの一環として、Clickアクティビティに「クリックをシミュレート」がチェックが入っていればそれをOFF(=デフォルトモード)で動作がどうなるか試していただくのが良いかと思います。
これでクリックできれば元の方法はJava Scriptのイベントが発生していない、できなければセレクターが怪しいのではないかと思います。

Yoichi様

お世話になります。
ご回答ありがとうございました。

ご指導いただきました方法を試してみたところ、
自動でクリックが行われることを確認いたしました。
「Java Scriptのイベントが発生していない」というのがどのような状態を指すのか
詳細を理解できないのですが、ひとまず処理は進められそうです。

ありがとうございました。

こんにちは

原因切り分けのためClickのDefaultモードを提示しましたが、Defaultモードはタイミングにシビア等扱いが難しいので、可能ならば避けたほうが良いと思っています。

Inject JS Script(JSの実行)アクティビティで動くようならこちらの方が良いと思います。まずはスクリプトの部分に以下のコードを記載して試していただければと思います。セレクターは当該ボタンを選択してください。

"function(e) { e.onclick() }"

Yoichi様

お世話になります。
度々のご指導、誠に恐縮です。

ご教示いただいた設定を試してみたのですが、
挿入方法が誤っているのか
「TypeError:e.onclick is not a function」のエラーが発生いたします。

gazo

上記は従来のフローですが、こちらの①の部分を、
ご指導いただいたInject JS Scriptの命令へ変更し、
セレクタで対象(ポップアップするためのリンク)をクリックしたうえで、
指定のコードを挿入しております。

私の解釈が誤っているのでしょうか。

こんにちは

添付いただいた画像では良くわかりませんが、Inject JS Scriptの操作対象は最初に記述いただいた「ファイルを開く」(ファイルを選択?)ボタンになります。

e.onclick()でうまくいくかは元のHTML次第なので、NGの場合は別のコードや方法を検討することになります。JavaScriptでのdispatchEventで強制的にイベントを発生させることもできますが、イベントの特定や複数行コードが必要になるなど若干ハードルが高くなります。
もしClickアクティビティのSendWindowMessages(ウインドウメッセージを送信)で安定するならこちらでも良いかもしれません。

1 Like

Yoichi様

お世話になります。
再度ご返信ありがとうございます。

JSの実行では上手くいかないようでしたので、
ご指摘のクリックアクティビティ「ウィンドウメッセージを送信」で
現在は稼働する事を確認しております。

一旦、今回の事象はこれで解決とし、引き続き開発を進めさせていただきます。

ご親切にご協力いただき、本当にありがとうございました。