我希望我的代码尽可能动态,这是我的代码
Set buttonDesc = Description.Create()
buttonDesc("Class Name").Value = "JavaButton"
Set reqButton = JavaWindow("AKAM Application").ChildObjects(buttonDesc)
text = reqButton(1).GetROProperty("label")
JavaWindow("AKAM Application").JavaButton(text).Click
在这里,在第1行和第2行中,我声明了一个属性,以便可以使用其索引(1)单击按钮而无需指定其标题,我想对Windows对象执行相同的操作,在此我必须指定标题窗口“ AKAM应用程序”。问题是我需要JavaWindow的父类某种方式,以便我可以将其作为子代,并将Class Name指定为javaWindow并获取所需的对象,但是QTP不能将其作为父类,或者根本没有它,以后是可能的情况。有什么办法可以获取所有打开的窗口的对象并指定javaWindow并获取所需的窗口?我试过下面的代码,但是它不起作用,可能是因为我的应用程序窗口的标题栏中没有显示“ JavaWindow”,我不确定
Dim WinDesc
Set WinDesc = Description.Create
WinDesc("nativeclass").Value = "JavaWindow"
Set WinChildren =Desktop.ChildObjects(WinDesc)
msgbox WinChildren.count
For i = 0 to WinChildren.Count - 1
winText = WinChildren(i).GetROProperty("label")
msgbox winText
Next
请帮助!
最佳答案
通过描述性编程,您可以将JavaWindow捕获到其index属性:
Set myJavaWindow = JavaWindow("index:=0")
0可以参数化。
注释后编辑:要使第二个示例生效:
Dim myJW, i
For i = 0 to 1023
Set myJW = JavaWindow("index:=" & i)
If not myJW.Exist Then Exit For
msgbox "Text for JavaWindow " & i & ": " & myJW.GetRoProperty("label")
Next
要在具有特定标签的JavaWindow上进行匹配,您还可以使用描述性编程,例如:
myLabel = "Xyzzy!"
If JavaWindow("label:=" & myLabel, "index:=0").exist Then
msgbox "Woei! A Javawindow with label '" & myLabel & "' exists!"
End if