我编写了一个简单的脚本来登录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:之前的同一个剧本正在运作,并且因为一个未知的原因而停止工作!!!
提前致谢。
答案 0 :(得分: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
- 能够。
答案 1 :(得分:0)
只是为了确定..通过测试.getroproperty(“editable”)来检查字段是否已启用。
使用以下任何方法在Java编辑字段中设置文本。
x = JavaEdit(“PSW”)。Getroproperty(“abs_x”)
y = JavaEdit(“PSW”)。Getroproperty(“abs_y”)
设置DRP = CreateObject(“Mercury.DeviceReplay”)
DRP.MouseClick x,y,“0”
DRP.SendString“字符串”
任何这些方法都适合您。如果不是运气不好.. :)
答案 2 :(得分: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
我真的不知道同样的功能有时会如何工作,有时候不会!