###前提・実現したいこと
UWSCで自動スクリプトを作製しています。
現在、ある発送画面にてテキストボックスに数値を入力してから、
submitボタンを押すという処理を行っています。
しかし、これだと同時に非同期処理が動き、submitよりも早く非同期が終われば正常に動作しますが、
非同期よりも早くsubmitの処理が終わってしまう場合、入力値が反映されずに処理が完了してしまいます。
非同期が起こるイベント条件は
「テキストボックスのカーソルから離れた場合」
なります。
したがってこのイベントを発生させてからsubmitをしたいのですが、
このイベントを発生させることができません。
色々と試したコードを記載します。
###該当のソースコード
//テキストボックスに数値を入力 setRet = IESetData(IE, amount, "cost") // フォーカスしてフォーカスをはずす setFocus(IE, "cost") Procedure setFocus(IE, formName) Dim n Dim i Dim itemName FOR n = 0 TO (IE.document.forms.length -1) FOR i = 0 TO (IE.document.forms[n].elements.length -1) itemName = IE.document.forms[n].elements[i].name ifb formName = itemName then msgbox("itemName: " + itemName) // そこにフォーカスする msgbox("focused!!!") IE.document.forms[n].elements[i].focus() msgbox("blur!!") IE.document.forms[n].elements[i+1].blur() // 終了 exit endif NEXT NEXT Fend
このパターンでさらにclick()なども試してみましたがうまくいきませんでした。
また別のパターンとして
//テキストボックスに数値を入力 setRet = IESetData(IE, amount, "cost") KBN(VK_TAB)
というようなこともしましたがうまくいきませんでした。
###試したこと
他にも他のフォームにfocusしてみたりもしてみましたが、
上手くいきませんでした。
最終的には、もうBTN関数などで直接クリックしてみるなどですが、
この方法だと環境によってはうまくいかない可能性もあるため、できれば避けたい気持ちです。
UWSCで非同期のイベントを発生させることはできないでしょうか?
どうかよろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。