51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 12072|回复: 32
打印 上一主题 下一主题

[原创] 关于QTP对Java插件的识别问题(JavaTable下拉框)

[复制链接]
  • TA的每日心情
    开心
    2014-12-26 13:34
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2007-4-30 12:46:43 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

    如图红圈圈内所示,一个JavaTable下拉控件,可以选择下拉列表的值,也可以手动输入。
    1、用QTP直接录制时脚本为:
    JavaWindow("测试程序").JavaTable("数据列表").SetCellData 1,4,"平方米"
    回放虽然没有出错,但值也未设置成功,SetCellData方法对下拉列表似乎无效。
    2、添加辅助脚本:
    JavaWindow("测试程序").JavaTable("数据列表").ClickCell 1,4    ‘单击网格,让其呈现为录入状态。
    JavaWindow("测试程序").JavaTable("数据列表").SetCellData 1,4,"平方米"  ‘输入录入值。
       第一行虽然回放成功,操作也有效,但根本不起作用,第二行代码不受第一行的影响。
    3、修改录入方式
    JavaWindow("测试程序").JavaTable("数据列表").SelectRow 2
    这样也不行。
    好像没有其它好的办法了,SendKey也不支持。图示SPY为捕捉到下拉框里的值的属性。但实际录制生成脚本里到JavaTable已经到底了,求高手指教!

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    该用户从未签到

    33#
    发表于 2015-8-31 13:15:17 | 只看该作者
    解决了我的问题
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    32#
    发表于 2010-12-27 13:46:14 | 只看该作者
    没有java的插件啊。。。。。我现在就碰到java的控件不能识别的情况。。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    31#
    发表于 2010-3-19 13:20:02 | 只看该作者
    路过
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    30#
    发表于 2010-3-19 12:23:33 | 只看该作者
    能不能给我传个java插件啊 真的谢谢了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    29#
    发表于 2009-6-11 13:57:14 | 只看该作者
    遇到了同样的问题,学习了,去试试!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    28#
    发表于 2009-4-20 11:14:57 | 只看该作者
    受教了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    27#
    发表于 2007-10-17 09:47:42 | 只看该作者
    没有QTP9.2的java插件license,不能用好可惜哦
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    26#
    发表于 2007-5-9 15:31:16 | 只看该作者
    原来是没有装JAVA的插件,多谢了。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-12-26 13:34
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    25#
     楼主| 发表于 2007-5-9 11:59:26 | 只看该作者
    原帖由 hehemeimei 于 2007-5-9 10:21 发表
    我参照了QTP中关于JavaTable的说明:
      我怎么在QTP的帮助文档中找到相关的主题啊,希望楼主给与解释



        首先你必须安装了QTP的Java插件才会有对应的帮助文档,
        打开帮助文档,在索引中输入JavaTable即出现相关内容。sdlkfj2
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    24#
    发表于 2007-5-9 10:21:15 | 只看该作者
    我参照了QTP中关于JavaTable的说明:
      我怎么在QTP的帮助文档中找到相关的主题啊,希望楼主给与解释
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-12-26 13:34
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    23#
     楼主| 发表于 2007-5-9 09:34:01 | 只看该作者

    问题解决啦……

    一个问题不解决,会让我N天睡不香,昨晚突然来灵感,今天早上过来尝试,发现问题已解决!

    直接录制:
    JavaWindow("程序窗体").JavaTable("风格窗体").SetCellData ""
    低级录制:
       Window("程序窗体").Click X,Y
       Window("程序窗体").Type ""

    两者结合即可解决问题:
    JavaWindow("程序窗体").JavaTable("风格窗体").ClickCell Row,Col
    Window("程序窗体").Type ""

    这样问题就解决了,而且可以进行参数化呢,哈哈…… sdlkfj3


    当然前提条件是对象库中已含有上述所有的对象了喔。sdlkfj2


    [ 本帖最后由 walker1020 于 2007-5-13 09:04 编辑 ]
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-12-26 13:34
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    22#
     楼主| 发表于 2007-5-8 21:49:56 | 只看该作者
    原帖由 yzem99 于 2007-5-8 19:26 发表
    或者是javaEdit("").Object.SetText("")



        Object 这个属性我还没真试过,不过刚看JavaTable("表格控件").Object下没有SetText这个方法。

      Object下有好多属性和方法,查帮助文档写得很简单,没有例子和太多说明。

      宿舍机器跑QTP超慢,明天回公司再试试……  sdlkfj6
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    21#
    发表于 2007-5-8 19:26:04 | 只看该作者
    或者是javaEdit("").Object.SetText("")
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
    发表于 2007-5-8 19:17:40 | 只看该作者
    不知道你有没有试过javalist.Object.*  里面的方法,这个里面是没有被封装的函数。
    如果你要是能知道这个控件定义在哪个jar包的话,可以去研究一下Java Add-in Extensibility。详细内容可以看Java Add-in Extensibility Developer's Guide。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-12-26 13:34
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    19#
     楼主| 发表于 2007-5-8 17:47:35 | 只看该作者

    此方法也尝试过了

    原帖由 yzem99 于 2007-5-8 17:06 发表
    既然识别出来的是javalist,就应该用javalist的方法去处理,因为javalist已经把javatable覆盖住了。一般这个这个时候就可以用javalist("").select "" 去做的。要是不行,你再点击后边的箭头或双击,这应该可以弹 ...



      谢谢Yzem99!
      这个方法理论上是可行了,我也尝试过了,可能问题的根本不在这里吧。
      现在用JavaList的方法根本就没有任何反应(Action 、GetItem、Select…… ),苦闷!sdlkfj7
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-12-26 13:34
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    18#
     楼主| 发表于 2007-5-8 17:44:12 | 只看该作者

    将整个过程分解如下:

    将整个过程分析如图,
    在下拉框中选择值可分为以下步骤:
    1、激活单元格,出现下拉按钮Button。 //可用ClickCell激活,出现下接按钮
    2、单击下拉按钮,出现列表与下拉框。 //可用Button.Click打开列表
    3、将鼠标移至下拉列表中,让下拉列表得到焦点。 //目前未能实现,JavaList.Activate方法没反应
    4、单击下拉列表中的值,完成选择。 //用JavaList的方法都没有反应

    方法二:
    不在列表中选择,直接输入自定义的值。
    1、激活单元格,呈现可编辑状态。  //直接ClickCell即可实现。
    2、输入自定义的值。   //用Type、SetCellData都没有反应。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2007-5-8 17:06:00 | 只看该作者
    既然识别出来的是javalist,就应该用javalist的方法去处理,因为javalist已经把javatable覆盖住了。一般这个这个时候就可以用javalist("").select "" 去做的。要是不行,你再点击后边的箭头或双击,这应该可以弹出list出来了吧,再select试试看
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-12-26 13:34
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    16#
     楼主| 发表于 2007-5-8 16:58:26 | 只看该作者
    原帖由 yzem99 于 2007-5-8 16:06 发表
    看到你spy出来的是javalist
    可以试试下面这个:
    JavaWindow("测试程序").JavaTable("数据列表").ClickCell 1,4
    JavaWindow("测试程序").JavaTable("数据列表").JavaList("JComboBox").Select("平方米")

    当 ...


    此方法我也试过了,ClickCell后,单元格呈图示状态(等待输入),并没有激活下拉框。
    单元格已经是JavaTable的子元素了,好多方法都行不通,我尝试了JavaTable的好多属性和方法,都没有尝试成功,感觉好像是QTP的问题,QTP没有去识别这个动作。

    可以用低级录制,但低级录制的可维护性就很差了,有几百行数据,低级录制无法进行参数化。


      如果我会编程就好了,直接写一个测试程序上来,大家就可以直接尝试了,不用老看描述和想像了 sdlkfj8

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2007-5-8 16:06:03 | 只看该作者
    看到你spy出来的是javalist
    可以试试下面这个:
    JavaWindow("测试程序").JavaTable("数据列表").ClickCell 1,4
    JavaWindow("测试程序").JavaTable("数据列表").JavaList("JComboBox").Select("平方米")

    当然首先在你的object repository里要有JavaList("JComboBox")
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-8 22:49 , Processed in 0.082191 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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