1

ユーザー名とパスワードを入力してから「接続」ボタンをクリックするJavaアプリにログインするための簡単なスクリプトを作成しました。

Set UVC = JavaDialog("UVC")
wait(20)
If UVC.Exist Then
    UVC.JavaEdit("JTextField").Set "admin"
    wait(2)
    UVC.JavaEdit("PSW").SetSecure "5256833195fsdqsdsqd447e4beefsdsdqd"
    wait(5)
    UVC.JavaButton("Connect").Click
Else
    print "Console is not present"
End If

QTP が私のパスワード フィールドを適切に識別しているので、奇妙です。次のコードを実行すると、期待どおりに値が返されます。

MsgBox Main.JavaEdit("password").GetROProperty("attached_text")

パスワードを暗号化せずに設定しようとしましたが、機能していません。

PS: 同じスクリプトが以前は機能していましたが、原因不明で機能しなくなりました!!!

前もって感謝します。

4

3 に答える 3

1

交換

UVC.JavaEdit("PSW").SetSecure "5256833195fsdqsdsqd447e4beefsdsdqd"

UVC.JavaEdit("PSW").Click 1,1
UVC.JavaEdit("PSW").SetSecure "5256833195fsdqsdsqd447e4beefsdsdqd"

リプレイモード=「イベント」でも動作します。これを美しくしたい場合は、次のようにフィールドの中央をクリックします。

With UVC.JavaEdit("PSW")
    .Click .GetROProperty ("width")\2, .GetROProperty ("height")\2
    .SetSecure "5256833195fsdqsdsqd447e4beefsdsdqd"
End With

ほとんどの Java パスワード フィールドは、有効にするために最初にフォーカスする必要があるようSetSecureです。

于 2013-10-16T09:08:44.920 に答える
0

回答ありがとうございますが、あなたの提案はどれもうまくいきませんでした。基本的なターンアラウンドを使用することになりました:

UVC.JavaEdit("JTextField").Set"admin"
UVC.JavaEdit("PSW").Click 1,1
UVC.JavaEdit("PSW").SetSecure"52581237d889935df36ae78587773a641f40"
UVC.JavaButton("Connect").Click
wait (5)
While JavaDialog("Login Error").Exist 
JavaDialog("Login Error").JavaButton("Ok").click
UVC.JavaEdit("PSW").RefreshObject
UVC.JavaEdit("PSW").SetSecure"52581237d889935df36ae78587773a641f40"
UVC.JavaButton("Connect").Click
Wend

同じ機能が機能する場合と機能しない場合があるのは、本当にわかりません!!

于 2013-10-23T16:03:09.893 に答える
0

念のために.. .getroproperty("editable") をテストして、フィールドが有効になっているかどうかを確認してください。

これらのメソッドのいずれかを使用して、Java 編集フィールドにテキストを設定します。

  1. JavaEdit("PSW").Object.Settext メソッドを使用できます。これは、JavaSwing オブジェクト プロパティで JTextField を使用します。
  2. フィールドに文字列を入力する前に setfocus メソッドを使用できます
  3. テストフィールドの位置を取得する

x = JavaEdit("PSW").Getroproperty("abs_x")
y = JavaEdit("PSW").Getroproperty("abs_y")
Set DRP = CreateObject("Mercury.DeviceReplay")
DRP.MouseClick x,y,"0 "
DRP.SendString "文字列"

  1. JavaEdit の type オブジェクトを使用することもできます

これらの方法のいずれかが機能するはずです。タフな運でなければ.. :)

于 2013-10-18T18:01:19.633 に答える