51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 6458|回复: 6
打印 上一主题 下一主题

[求助] QTP测试流程怎么记住单号

[复制链接]
  • TA的每日心情
    开心
    2016-3-21 13:09
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]测试排长

    跳转到指定楼层
    1#
    发表于 2013-12-27 14:12:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    5测试积点
    初次使用QTP工具来测试项目流程。发现以下问题:生成的单号是10021,在处理列表操作的的时候QTP默认操作第一个单号(第一个单号不一定就是刚刚生成的10021)。怎么样让QTP记住生成的这个单号然后一直操作这个单号到案件完结呢?请各位大侠指教。小女子先行谢过了

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

    使用道具 举报

    该用户从未签到

    2#
    发表于 2013-12-27 20:43:08 | 只看该作者
    既然你表述QTP会操作第一行

    那代码应该是类似这样的把
    Browser("xx").Page("yy").WebElement(第一行).Click

    dim v
    v=Browser("xx").Page("yy").WebElement(第一行).GetRoProperty("innertext")
    print v
    看看v是不是你要的变化的值
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-10-4 10:34
  • 签到天数: 1208 天

    连续签到: 1 天

    [LV.10]测试总司令

    3#
    发表于 2013-12-28 11:49:13 | 只看该作者
    循环 查找 选择

    1.可以正常识别为webTable
    http://user.qzone.qq.com/305132437/blog/1363067214
    2.无法识别为webTable
    http://user.qzone.qq.com/305132437/blog/1363763546
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2016-3-21 13:09
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]测试排长

    4#
     楼主| 发表于 2013-12-30 13:57:09 | 只看该作者
    回复 2# lgh75560


       录制生成的代码是: Browser("@@").Page("@@").Frame("@@").Image("处理").click
    因为单号显示的地方是随机的,那么是不是应该根据单号去查找了。先取得单号,然后每个环节在选择处理这个操作的时候,选择这个单号所在的处理操作。
    回复

    使用道具 举报

    该用户从未签到

    5#
    发表于 2013-12-30 20:38:28 | 只看该作者
    本帖最后由 lgh75560 于 2013-12-31 08:29 编辑

    识别WebTable吧
    使用QTP的Spy识别控件属性,识别表格单元,用描述符获得WebTable,用ChildItem获取特定单元格

    类似生成的代码为
    Browser("@@").Page("@@").Frame("@@").WebTable("html id:=??","index:=?").ChildItem(?,?,?,?)

    ChildItem用法
    object.ChildItem (Row, Column, MicClass, Index)

    如何快速识别对象:
    1:使用Google浏览器,右键“审查元素(N)”,就能看见元素的属性
    2:如果用描述编程识别1个控件报错,但是属性明明写对了,可以在Google右键“查看网页源代码(V)”,搜搜描述的属性是否出现了重复,出现重复了,就加索引好了“index:=??”
    3:识别不了特定控件,但能识别他的父类,可以尝试这种方法
    能识别的控件.ChildObjects().Item(?).操作
    (我也不大喜欢使用DOM,因为运行起来比较慢)
    4:某个操作后,页面延迟很厉害这么办,我不喜欢用wait
    可以尝试获取IE对象
    Set IE=Browser("micclass:=Browser","CreationTime:=0").Object.Parent
    While IE.Busy: Wend

    (简写成一句:While Browser("micclass:=Browser","CreationTime:=0").Object.Parent.Busy :Wend )

    IE.Busy
    和Page.sync的区别,最近研究了一下,发现不是一样的
    Page.sync是等待状态栏为“完成”,就认为True了,然后执行下一句

    IE.Busy 则是这样,如果浏览器在处理运算,而状态栏为"完成"状态,也会认为浏览器是busy状态,因为运算没完成,适合于操作后延迟时间不确定使用,我最近项目刚好用上了。
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2018-9-27 10:05
  • 签到天数: 36 天

    连续签到: 1 天

    [LV.5]测试团长

    6#
    发表于 2014-1-6 16:27:26 | 只看该作者
    单号是通过GetRoProperty来获取的,然后保存在一个变量里使用就行了。
    首先最好先看下QTP的识别工作原理和对象库的相关知识。比如单号是保存在 控件的 value 属性中,
    那就尝试使用Value以外的属性来描述这个控件,或添加这个控件到对象库(不使用value属性;支持正则)
    然后有了这个对象就能用GetRoProperty来获取value的值了。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2016-3-21 13:09
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]测试排长

    7#
     楼主| 发表于 2014-1-14 13:56:46 | 只看该作者
    本帖最后由 janexujing 于 2014-1-16 15:40 编辑

    回复 6# 黑羽祭



    需要循环读取列表中的任务号,如图,循环找到对应的单号后操作这个单子的【受理】按钮。
    Dim i, edit_count,obj
    edit_count=browser("闵行区大联动综合业务平台").Page("城市网格化管理信息系统").Frame("ifrm_Module_3").WebTable("任务号").RowCount
    obj=Browser("闵行区大联动综合业务平台").Page("城市网格化管理信息系统").Frame("ifrm_Module_3").WebTable("任务号").GetCellData(i,3)
      For i=0  to edit_count-1  
         If obj=“1401B1501214” Then
                     Browser("闵行区大联动综合业务平台").Page("城市网格化管理信息系统").Frame("ifrm_Module_3").Image("受理本案").Click                 
             End If
    上面这段代码行不通。因为我们项目的列表是一个div里面包含多个table,每一个案件就是一个table。我想要获取到table的数量,然后循环每个table中的任务号,当找到任务号后执行受理操作。
    这该怎么办啊

    本帖子中包含更多资源

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

    x
    回复

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-21 22:24 , Processed in 0.068566 second(s), 26 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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