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-able 上。

于 2013-10-16T09:08:44.920 回答
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")
设置 DRP = CreateObject("Mercury.DeviceReplay")
DRP.MouseClick x,y,"0 "
DRP.SendString "字符串"

  1. 你也可以使用 JavaEdit 的类型对象

这些方法中的任何一种都应该适合您。如果不是运气不好.. :)

于 2013-10-18T18:01:19.633 回答
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 回答