51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 12070|回复: 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空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    2#
     楼主| 发表于 2007-4-30 21:31:59 | 只看该作者

    太失望了

    连51里都没有一个人知道或愿意回答吗?sdlkfj9
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    3#
     楼主| 发表于 2007-5-1 09:17:21 | 只看该作者

    在线等呀

    有没人知道啊?给给建议……

       :(
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    4#
     楼主| 发表于 2007-5-2 21:27:40 | 只看该作者

    看来大家是真的都放假了。

    呵呵,我也放假了……sdlkfj2
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2007-5-3 17:41:16 | 只看该作者

    现在用QTP的高手还不多.....

    看来现在用QTP的高手还不多......
    sdlkfj9
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    6#
     楼主| 发表于 2007-5-4 20:24:13 | 只看该作者

    顶上去

    知心者难求也……sdlkfj9
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2007-5-5 15:13:33 | 只看该作者
    虽然没有好的建议,但是还是冒冒泡,说明我已经放完假了
    呵呵
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2007-5-5 21:44:35 | 只看该作者
    这几天大家在放假,过两天应该有人会回答的,可惜我的水平不够
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    9#
     楼主| 发表于 2007-5-7 20:01:48 | 只看该作者
    原帖由 alex_82712 于 2007-5-5 15:13 发表
    ……冒冒泡,说明我已经放完假了……


    明天又要上班了,我今天下载了QTP9.2,结果和8.2完全一样,不能解决问题。


      sdlkfj9


      看来只能从代码级或高级设置中找答案了。


         冒泡泡,路过的朋友们  仁者见仁,智者见智啊……  sdlkfj6

    本帖子中包含更多资源

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

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2007-5-8 09:37:08 | 只看该作者
    你把“.set”改成“.type”这个方法试一下。
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    11#
     楼主| 发表于 2007-5-8 11:27:24 | 只看该作者

    可以运行成功

    用TYPE方法,可以运行成功,但值没有输入成功,和SET方法结果一样。

    我尝试用他的  FireEvent 来TypeKey,帮助文档写得太简单了。

    网上的说明难以理解,没有一个例子可参考的。sdlkfj7
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    12#
     楼主| 发表于 2007-5-8 11:41:00 | 只看该作者
    我参照了QTP中关于JavaTable的说明:

    Recording on Custom Cell Editors in Swing JTable Tables (非标准表格控件)
    When a JTable contains a custom (non-standard) cell editor, the default SetCellData statement cannot be recorded. For example, if a cell contains both a check box and a button that opens a dialog box, then a SetCellData statement may not always provide an accurate description of the operation(s) performed inside the cell.

    里面也有举例说明,但是是对单选框的。
    If you record an operation on a custom cell editor, QuickTest records a statement that reflects the operation you performed on the object inside of the cell. For example, if the cell editor contains a custom check box, QuickTest might record the following statement:

    Browser("Periodic").Page("Periodic").JavaWindow("CoolJava").JavaDialog("SetOptions").JavaCheckBox("MyCheckBox").Set "ON"

    instead of:

    Browser("Periodic").Page("Periodic").JavaWindow("CoolJava").JavaDialog("SetOptions").JavaTable("MyTable").SetCellData "ON"
    这个例子中,出错的原因是代码生成错误,然后改成SetCellData,

    而我现在是JavaTable的自定义了一个下拉框,可以自动识别为SetCellData,但Set方法无效。

    求救啊!此问题一直为解。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    13#
    发表于 2007-5-8 14:24:58 | 只看该作者
    1,“值也未设置成功,SetCellData方法对下拉列表似乎无效” 到底是什么意思?请说清楚 你要达到的效果和 QTP回放脚本的实际效果或出现的问题,请精确描述,不要用“似乎”。我这里没有你那边的环境,只能根据你的描述来帮你解决问题。
    2, “根本不起作用" 是什么意思?
    3,”这样也不行“ 到底是什么意思?
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    14#
     楼主| 发表于 2007-5-8 15:10:28 | 只看该作者

    回复 #13 walker1020 的帖子

    1,“值也未设置成功,SetCellData方法对下拉列表似乎无效” 到底是什么意思

    ?请说清楚 你要达到的效果和 QTP回放脚本的实际效果或出现的问题,请精确描

    述,不要用“似乎”。我这里没有你那边的环境,只能根据你的描述来帮你解决

    问题。

            “SetCellData方法对下拉列表似乎无效”是我的主观描述,用

    SetCellData时,回放过程下拉列表没有被激活。(录制过程是打开下拉框,选中

    列表中的值)
            “值也未设置成功”也是我的主观描述,录制过程选择了下拉列表中的

    值,回放过程没有选中任何值;修改脚本,直接用SetCellData赋值给对应单元格

    ,结果没有赋值成功,对应表格还是空的,没有任何数值。
            我的描述是太含糊了。。。   :(
            其实我的目的很简单,就是要给单元格设置一个指定值。
    2, “根本不起作用" 是什么意思?

            这个描述不当,“根本不起作用" 就是回放过程单元格没有发生任何改

    变,没有输入数据进去。
    3,”这样也不行“ 到底是什么意思?

            ”这样也不行“,描述不够客观。意思其实就是和上面一样,没有回放

    成功。(QTP完成测试,但单元格中没有数据)


       我已经让程序员帮忙写一个测试程序,现在他们比较忙,到时传到网上就好了



      测试程序描述:
            程序界面和Excel非常相似,由很多行和列组成,列是固定的,行是可增

    删改的。
      测试目的:
            要输入一些数据进去,查看程序的处理结果是否正确。
      目前的问题:
            普通的单元格(直接输入数据)可以录制、回放成功。需要从下拉列表中选择数值的,回放过程值没有输入成功(空白)。
            QTP脚本中没有 打开列表和选择列表值的记录,录制下拉列表生成的脚本和普通单元格是一样的,仅使用了SetCellData 。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

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

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

    使用道具 举报

  • 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
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    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]测试小兵

    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
    回复 支持 反对

    使用道具 举报

  • 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
    回复 支持 反对

    使用道具 举报

    该用户从未签到

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

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-8 20:44 , Processed in 0.090626 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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