51Testing软件测试论坛

标题: 如何使用QTP识别JavaTable中的JavaCheckBox [打印本页]

作者: pestyy    时间: 2012-5-9 18:46
标题: 如何使用QTP识别JavaTable中的JavaCheckBox
在JavaTable内置一个JavaCheckBox,只有选择框被勾选才能执行后续操作,目前,使用QTP SPY只能识别到JavaTable,而JavaTable表中内置的选择框以及JavaTree的属性查看不到。 测试界面本身就是一个Java得,而不是WEB。。。。急啊,各位大神们赶紧帮帮我啊。
作者: lifr    时间: 2012-5-9 20:28
我用了一种取巧的方法, 就是通过发送 TAB键移动到特定的cell,然后发送Space键, 选择checkbox。

确实table里的checkbox不能直接找到, 不知道用tbl.childObjects能不能找出?
作者: pestyy    时间: 2012-5-10 08:12
回复 2# lifr


   我试了你的方法,但是行不通,用tab键这个方法不行。。不过还是谢谢,继续坐等大神回帖
作者: pestyy    时间: 2012-5-10 11:18
看来大神很少逛论坛呐~
作者: pestyy    时间: 2012-5-10 11:18
看来大神很少逛论坛呐~
作者: lifr    时间: 2012-5-10 21:03
通常javatable都支持tab在cell间转移, 你手动测试过不支持吗?

我用的Wscript来发送键盘事件.
作者: pestyy    时间: 2012-5-11 08:37
回复 6# lifr


   你说的方式就是用wshshell.sendkeys这个方法吧~我这边是javatable中嵌套了一个javacheckbox,用QTP工具根本就识别不了,后面修改tools中的录制设置,基本上还是没用。childobject也用了:
Dim oCheckBox,counts,n
Set oCheckBox = Browser("UFIDA New Century").Page("UFIDA New Century").ActiveX("Java Plug-in 1.5.0_07").JavaApplet("AppletContainer").JavaTable("BillScrollPane$BillTable").ChildObjects(ojavaChkDesc)
counts=oCheckBox.count
msgbox counts
弹出counts=0。。。。
作者: lifreshman0626    时间: 2012-5-11 08:50
我知道webtable里面有个childitem可以获取table里面的控件,不知道javatable有没有这个方法!
作者: pestyy    时间: 2012-5-11 13:36
回复 9# 加Q904022621


    这个问题还没解决呢,感谢我个啥~
作者: lifr    时间: 2012-5-12 07:29
回复 7# pestyy

如果手动验证支持tab键切换, 还是可以想办法. 如果不支持, 那就真没啥招了.

  1. Set tbl = ...
  2. tbl.ClickCell 1, 1
  3. SendKey "{TAB}"

  4. Function SendKey(keyValue)
  5.    Dim WshShell
  6.    set WshShell = CreateObject("Wscript.Shell")
  7.    WshShell.SendKeys keyValue
  8.    wait(1)
  9.    Set WshShell = Nothing
  10. End Function
复制代码

作者: power911    时间: 2012-5-14 09:54
利用javatable的clickcell进行操作
作者: csj    时间: 2012-5-17 15:14
我感觉还是用JavaTable(XXX)。ChildItem这个方法吧,应该支持的
作者: csj    时间: 2012-5-17 15:22
刚才说的不对,你可以参考下面这段代码,希望对你有帮助
Sub ChildObjects_Example()
Set Desc = Description.Create()
Desc("to_class").Value = "JavaList"
Desc("enabled").Value = 1
Set Lists = JavaWindow("SwingSet").ChildObjects(Desc)
For i = 0 To Lists.Count - 1
Lists(i).Select 0
Next

End Sub
作者: csj    时间: 2012-5-17 15:25
本帖最后由 csj 于 2012-5-17 15:28 编辑

还有这段代码,这个方法主要用到ClickCell这个方法
Sub ClickCell_Example()
Browser("SwingSet demo").Page("SwingSet demo").JavaApplet("SwingSetApplet").JavaTable("Inter-cell spacing:").ClickCell 2, "Last Name", "LEFT", "SHIFT"

End Sub

当然还可以尝试
object.DoubleClickCell Row, Col, [MouseButton], [Modifier]这个方法
作者: pestyy    时间: 2012-6-5 09:36
之前那个项目已经做完了。。不过还是感谢sky大神。。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2