51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3421|回复: 11
打印 上一主题 下一主题

[原创] GetItemProperty 方法 (WinList) 返回的是“”

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-8-25 16:41:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
代码如下:

  1. Dim count_list,STBType_1
  2. Randomize
  3. count_list=int((Window("演示").WinList("TListBox").GetItemsCount)*rnd)   '生成列表随机选项
  4. msgbox count_list
  5. STBType_1=Window("演示").WinList("TListBox").GetItemProperty (count_list,"text")
复制代码

sdlkfj1 我的本意是,产生一个随机数count_list(0-n),然后获取winlist里面的第count_list项的文本内容,然后再选择这第count_list项.
现在的问题是,函数返回的是""值.请问,这是我函数用错了还是什么原因呢?
我原来是打算让它先选了,再输出选择结果到DataTable的,但是发现选择之后,Winedit里面的内容没有了我需要的文字,所以想了个办法,先获取列表某项内容,再选择了.
谢谢了.
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    2#
    发表于 2007-8-25 18:59:01 | 只看该作者
    先让count_list=0,然后 运行下面的这行 代码
    STBType_1=Window("演示").WinList("TListBox").GetItemProperty (count_list,"text")
    看看 STBType_1的结果是什么。
    先定位是随机函数的问题,还是GetItemProperty 的问题再说。然后再考虑怎么去处理!
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    3#
    发表于 2007-8-25 19:04:33 | 只看该作者
    刚才查了一下 QTP的帮助里面对 GetItemProperty 的说明,它的语法是 object.GetItemProperty (Item, Property)。如果Property 的值是text,那么此方法返回的是  The text of the list item,  if the list item does not contain any text,那么它返回的就是""
    楼主自己可以去看一下你的操作是否是 the list item does not contain any text 这种情况
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
     楼主| 发表于 2007-8-26 12:20:52 | 只看该作者
    多谢斑斑的热心回答。sdlkfj2
    随机数生成是正确的,我用了一个msgbox检查了它的生成。The list Item不是空的啊,是有明确的内容的。选择了之后,在winlist对应的winedit框里面是有内容的,并且可以使用OUTPUT输出。我之所以使用这个函数的原因,是因为选择之后在winedit里面的内容把关键代码省略了。如:list Item的内容是 ”AAAA A的说明“ 选择这项之后,它在winedit里面就只显示”A的说明“ 但我真正需要的是代码”AAAA“
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    5#
    发表于 2007-8-26 12:49:53 | 只看该作者
    原帖由 Banditu 于 2007-8-26 12:20 发表
    多谢斑斑的热心回答。sdlkfj2
    随机数生成是正确的,我用了一个msgbox检查了它的生成。The list Item不是空的啊,是有明确的内容的。选择了之后,在winlist对应的winedit框里面是有内容的,并且可以使用OUTPUT ...


    你的描述不清楚,看不懂你在表达什么意思。“选择了之后”,你选择了什么? 请用专业术语来表达你的问题!
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    6#
    发表于 2007-8-26 12:59:04 | 只看该作者
    只是听你这样说,我都不知道你的问题到底是什么。你就不能发个图片上来?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2007-8-26 15:08:27 | 只看该作者
    不好意思,表述不清楚。
    看这个图


    下拉菜单里面有代码,有文字,代码与文字使用空格隔开的
    我的目的是获得某个选项里面的代码(比如CS83),而不是文字。
    当选择了某个选项之后,显示的就是文字,而没有代码啦。。

    本帖子中包含更多资源

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

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2007-8-26 15:13:09 | 只看该作者
    我在使用随机函数来达到随机选择选项之前,是以为选择了之后会有代码的,然后可以使用winedit的OUTPUT函数获得代码。没想到做起来的时候才发现,选择之后是没有代码的,只有文字。。于是就希望使用GetItemProperty 方法 可以在select发出之前获得这个代码。但不知道为什么返回的是“”sdlkfj8
    本意代码如下:

    1. Dim count_list,STBType_1
    2. Randomize
    3. count_list=int((Window("演示").WinList("TListBox").GetItemsCount)*rnd)   '生成列表随机选项
    4. msgbox count_list
    5. STBType_1=Window("演示").WinList("TListBox").GetItemProperty (count_list,"text")
    6. Window("演示").WinList("TListBox").Select count_list '选择第count_list项
    7. 'STBType_1 值留给后面的语句使用
    复制代码
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2007-8-26 16:02:40 | 只看该作者
    不明白你的为什么就是不行,会不会与CS83前面好像有个冒号有关,我用QTP自带的定票系统就可以的
    1. Dim count_list,STBType_1
    2. SystemUtil.Run "C:\Program Files\Mercury Interactive\QuickTest Professional\samples\flight\app\flight4a.exe","","C:\Program Files\Mercury Interactive\QuickTest Professional\samples\flight\app\","open"
    3. Dialog("Login").WinEdit("Agent Name:").Set "admin"
    4. Dialog("Login").WinEdit("Agent Name:").Type  micTab
    5. Dialog("Login").WinEdit("Password:").SetSecure "46d1270456d19b445d71fda0acea7fb3505d38c1"
    6. Dialog("Login").WinEdit("Password:").Type  micReturn
    7. Window("Flight Reservation").ActiveX("MaskEdBox").Type "082707"
    8. Window("Flight Reservation").WinComboBox("Fly From:").select 4
    9. Window("Flight Reservation").WinComboBox("Fly To:").Select "London"
    10. Window("Flight Reservation").WinButton("FLIGHT").Click
    11. count_list = int((Window("Flight Reservation").Dialog("Flights Table").WinList("From").GetItemsCount)*rnd)
    12. STBType_1 = Window("Flight Reservation").Dialog("Flights Table").WinList("From").GetItemProperty(count_list,"text")
    13. 'msgbox STBType_1
    14. Window("Flight Reservation").Dialog("Flights Table").WinList("From").Select count_list
    15. Window("Flight Reservation").Dialog("Flights Table").WinButton("OK").Click
    复制代码
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    10#
    发表于 2007-8-26 18:32:30 | 只看该作者
    如果不行,就使用WinList的 GetItem 方法试试

    [ 本帖最后由 walker1020 于 2007-8-26 18:42 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2007-8-26 21:21:17 | 只看该作者

    回复 #7 Banditu 的帖子

    单纯从脚本上看没有问题。不清楚你的应用程序是怎么实现winlist的?select方法和手工click有细微的差别。你试试看按以下方法,看能不能解决你的问题:
      1.确保winlist对象是正确识别的(是否存在多个winlist?)
      2.再select之后加上click
    ...
    STBType_1=Window("演示").WinList("TListBox").GetItemProperty (count_list,"text")
    Window("演示").WinList("TListBox").Select count_list '选择第count_list项
    Window("演示").WinList("TListBox").Click
    ...
      3.用getitem方法
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
     楼主| 发表于 2007-8-27 09:33:10 | 只看该作者
    多谢斑斑and sstarssdlkfj5 。使用GetItem(count_list)返回了正确的值了。
    这个应用程序用Delphi写的,有点怪,录制的时候有很多都无法正确识别,要手工修改的
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-13 17:10 , Processed in 0.071391 second(s), 25 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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