51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3470|回复: 14
打印 上一主题 下一主题

[原创] 如何使用QTP识别JavaTable中的JavaCheckBox

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2012-5-9 18:46:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在JavaTable内置一个JavaCheckBox,只有选择框被勾选才能执行后续操作,目前,使用QTP SPY只能识别到JavaTable,而JavaTable表中内置的选择框以及JavaTree的属性查看不到。 测试界面本身就是一个Java得,而不是WEB。。。。急啊,各位大神们赶紧帮帮我啊。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2012-5-9 20:28:33 | 只看该作者
我用了一种取巧的方法, 就是通过发送 TAB键移动到特定的cell,然后发送Space键, 选择checkbox。

确实table里的checkbox不能直接找到, 不知道用tbl.childObjects能不能找出?
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2012-5-10 08:12:18 | 只看该作者
回复 2# lifr


   我试了你的方法,但是行不通,用tab键这个方法不行。。不过还是谢谢,继续坐等大神回帖
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2012-5-10 11:18:21 | 只看该作者
看来大神很少逛论坛呐~
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2012-5-10 11:18:29 | 只看该作者
看来大神很少逛论坛呐~
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2012-5-10 21:03:05 | 只看该作者
通常javatable都支持tab在cell间转移, 你手动测试过不支持吗?

我用的Wscript来发送键盘事件.
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2012-5-11 08:37:13 | 只看该作者
回复 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。。。。
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2012-5-11 08:50:32 | 只看该作者
我知道webtable里面有个childitem可以获取table里面的控件,不知道javatable有没有这个方法!
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2012-5-11 13:36:39 | 只看该作者
回复 9# 加Q904022621


    这个问题还没解决呢,感谢我个啥~
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2012-5-12 07:29:41 | 只看该作者
回复 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
复制代码
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2012-5-14 09:54:07 | 只看该作者
利用javatable的clickcell进行操作
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2012-5-17 15:14:09 | 只看该作者
我感觉还是用JavaTable(XXX)。ChildItem这个方法吧,应该支持的
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2012-5-17 15:22:10 | 只看该作者
刚才说的不对,你可以参考下面这段代码,希望对你有帮助
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
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2012-5-17 15:25:52 | 只看该作者
本帖最后由 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]这个方法
回复 支持 反对

使用道具 举报

该用户从未签到

15#
 楼主| 发表于 2012-6-5 09:36:40 | 只看该作者
之前那个项目已经做完了。。不过还是感谢sky大神。。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-10 22:45 , Processed in 0.093124 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表