51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4886|回复: 17
打印 上一主题 下一主题

[原创] QTP vbs判断弹出窗口中是否出现对象库中的输入框?如何判断

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2011-3-22 21:41:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
目前,我这边在项目中存在一个这样的问题,
程序页面中需要对于一个弹出窗进行设置选择,而这个窗根据你之前的选择,弹出窗的内容不一样,我现在是这样判断的,对象库中抓取了所以关于弹出窗的里面的对象,
如果这个弹出窗存在
   if   window("A").Exist then
        if   window("A").winedit("aaa").obj.exist(0) then
             进行赋值
      end if
      if window("A").winedit("bbb").obj.exist(0) then
             进行赋值
      end if
end if
但是目前,测试结果是 程序能够正确执行,但是会报错,例如弹出窗只有aaa,没有bbb 那么bbb就会报无法标识的错误,而且这种判断要耗时比较久?
哪位高手知道问题所在?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2011-3-22 22:16:56 | 只看该作者
不是很明白你的意思

你用正则表达式来实现一下,看是否可以
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2011-3-23 08:51:47 | 只看该作者
if   window("A").Exist then
        if   window("A").winedit("aaa").exist(0) then
             进行赋值
      end if
      if window("A").winedit("bbb").exist(0) then
             进行赋值
      end if
end if
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2011-3-23 10:28:01 | 只看该作者
目前,我这边在项目中存在一个这样的问题,
程序页面中需要对于一个弹出窗进行设置选择,而这个窗根据你之 ...
hotsmile99 发表于 2011-3-22 21:41



    刚好在做一个类似的,设置一个超时时间,一个DO跳出

nTimeout=1
  if   window("A").Exist then
       do
        if   window("A").winedit("aaa").obj.exist(0) then
             进行赋值
            exit do

        else if window("A").winedit("bbb").obj.exist(0) then
             进行赋值
            exit do
        
          Else                                                                                                                                              nTimeout=nTimeout+1

      end if
end if
回复 支持 反对

使用道具 举报

  • TA的每日心情
    慵懒
    2019-4-10 17:57
  • 签到天数: 35 天

    连续签到: 1 天

    [LV.5]测试团长

    5#
    发表于 2011-3-23 11:27:51 | 只看该作者
    LZ这里的winedit不知还有其他属性可以识别么, 不然可以用GetRoProperty来读取属性, 再判断, 参考如下:
    if   window("A").Exist then
       ccc = window("A").winedit("xxx").GetRoProperty("name")    '如果"aaa","bbb"是指name的属性
       If Trim(ccc) = "aaa" Then
           进行赋值
       Elseif Trim(ccc) = "bbb" Then
           进行赋值
       End if
    end if

    如果没有的话, 那就判断exist的方法吧
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2011-3-23 14:31:36 | 只看该作者
    用if ... then...elseif...end if
    如果你的弹出框的种类比较多的话 用楼上的方法比较节省时间
    LZ这里的winedit不知还有其他属性可以识别么, 不然可以用GetRoProperty来读取属性, 再判断, 参考如下:
    if   window("A").Exist then
       ccc = window("A").winedit("xxx").GetRoProperty("name")    '如果"aaa","bbb"是指name的属性
       If Trim(ccc) = "aaa" Then
           进行赋值
       Elseif Trim(ccc) = "bbb" Then
           进行赋值
       End if
    end if

    如果没有的话, 那就判断exist的方法吧
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2011-3-23 15:25:54 | 只看该作者
    回复 6# cooleenjunjun


        问题已经解决了,我把那些弹出的框的 enable smart identification 设置为false就可以了
    不然即使用了exist(0)也要等待了20秒差不多,问题已经解决。谢谢.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2011-3-23 16:01:23 | 只看该作者
    回复 6# cooleenjunjun


        问题已经解决了,我把那些弹出的框的 enable smart identification 设置为false就可以了
    不然即使用了exist(0)也要等待了20秒差不多,问题已经解决。谢谢.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
     楼主| 发表于 2011-3-23 16:01:37 | 只看该作者
    回复 6# cooleenjunjun


        问题已经解决了,我把那些弹出的框的 enable smart identification 设置为false就可以了
    不然即使用了exist(0)也要等待了20秒差不多,问题已经解决。谢谢.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
     楼主| 发表于 2011-3-23 16:01:55 | 只看该作者
    回复 6# cooleenjunjun


        问题已经解决了,我把那些弹出的框的 enable smart identification 设置为false就可以了
    不然即使用了exist(0)也要等待了20秒差不多,问题已经解决。谢谢.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
     楼主| 发表于 2011-3-23 16:02:24 | 只看该作者
    回复 6# cooleenjunjun


        问题已经解决了,我把那些弹出的框的 enable smart identification 设置为false就可以了
    不然即使用了exist(0)也要等待了20秒差不多,问题已经解决。谢谢.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
     楼主| 发表于 2011-3-23 16:02:30 | 只看该作者
    回复 6# cooleenjunjun


        问题已经解决了,我把那些弹出的框的 enable smart identification 设置为false就可以了
    不然即使用了exist(0)也要等待了20秒差不多,问题已经解决。谢谢.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2011-3-24 10:57:38 | 只看该作者
    本帖最后由 风雪夜归人 于 2011-3-24 10:59 编辑

    .....回复的还真多。。
    Exist(0)和Exist一样的效果。。

    建议Exist(1)

    另外 if   window("A").Exist then  这句话的Exist也建议加个Exist(5)

    我一直都在建议Exist后面加个时间~~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-13 14:04
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]测试排长

    14#
    发表于 2011-3-29 11:48:08 | 只看该作者
    楼上正解, Exist(time) 指定时间,你如果要设成0就是默认的超时时间。

    所以 if obj.Exist(5)  then 如果5秒内找到对像则。。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2011-3-29 13:47:29 | 只看该作者
    exist 如果不带时间的话,默认时间不是10秒吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2011-3-30 10:55:31 | 只看该作者
    可以在SETTING里面改时间,它默认的是20秒,我一般都改成1秒
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2012-6-18 10:24:00 | 只看该作者
    用select case不是更好?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-8-25 10:21
  • 签到天数: 661 天

    连续签到: 1 天

    [LV.9]测试副司令

    18#
    发表于 2012-6-18 11:05:36 | 只看该作者
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-17 15:57 , Processed in 0.075979 second(s), 25 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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