51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4390|回复: 25
打印 上一主题 下一主题

qtp如何测试弹出层? 高手 快来帮忙

[复制链接]
  • TA的每日心情

    2024-10-20 14:47
  • 签到天数: 564 天

    连续签到: 1 天

    [LV.9]测试副司令

    跳转到指定楼层
    1#
    发表于 2013-5-2 13:35:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    购物车是鼠标放到上面就会弹出页面的了

    用QTP怎么知道里面有多少张单?
    有多少种商品
    里面各价格之和是否正确,要是想删除第二张单要怎么删除?
    总价大大于1000元时,随机删除几张单,直到总价少于1000?



    高手 快来帮忙

    本帖子中包含更多资源

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

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

    使用道具 举报

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

    连续签到: 1 天

    [LV.10]测试总司令

    2#
    发表于 2013-5-3 10:33:30 | 只看该作者
    这问题太多 还挺难 先说第一个
    我在京东上做的实验 你根据你们项目决定

    1.把数字那个对象加入对象库,改名
    2.对象库里的innerText属性 改为正则表达式 \d
    3.
    1. msgbox Browser("奶粉 - 商品搜索 - 京东").Page("奶粉 - 商品搜索 - 京东").WebElement("去购物车结算").GetROProperty("innertext")
    复制代码



    我添加的时候数字是4
    后来我又加了2个商品 所以是6

    如果不使用正则就找不到对象(这是关闭智能识别的时候)
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.10]测试总司令

    3#
    发表于 2013-5-3 11:14:35 | 只看该作者
    删除第二个很简单 你就直接把第二个删除 加入对象库就行

    注意一下index属性
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2013-5-3 11:46:02 | 只看该作者
    先抛开QTP的话可以用DOM实现,前提是你能得到弹出层的html代码,这样就可以用对象的object的属性对需要的对象进行查找。比如你图片上的购物车里有两个商品,这两个商品信息可能存在两个div中(也可能是table,具体看源代码)那么也就是说有几个这样的div就有几张单,以此类推,总之我的想法就是根据具体的代码来分析,如果商品很多,都加入对象库也是不现实的,而且对于这种经常改变的信息(购物车)都加入对象库然后再给每个对象起不同的名字也是不现实的。这些你可以学习一下javascript或者vbs,主要是学习对dom的操作
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.10]测试总司令

    5#
    发表于 2013-5-3 16:27:09 | 只看该作者
    搞了半天研究就出来了 有几种商品
    1. Dim oWebElements,oDesc
    2. Set oDesc=description.Create()
    3. oDesc("micClass").value="WebElement"
    4. oDesc("html tag").value="span"
    5. oDesc("class").value="p-price"
    6. set oWebElements= Browser("奶粉 - 商品搜索 - 京东").Page("奶粉 - 商品搜索 - 京东").ChildObjects(oDesc)
    7. oCount=oWebElements.count()

    8. Dim tempObj
    9. For i=0  To  oCount-1
    10.     Set tempObj = oWebElements.Item(i)
    11. print i&" "&tempObj.GetROProperty("innertext")
    12. Next

    13. msgbox "有"& oCount &"种商品"
    复制代码
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.5]测试团长

    6#
    发表于 2013-5-6 10:24:37 | 只看该作者
    回复 1# 让测试飞起来


        这张图很奇怪啊,购物车后面写的是5件,里面是2件,下面数量总计是1件。。
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.10]测试总司令

    7#
    发表于 2013-5-6 10:36:28 | 只看该作者
    里面各价格之和是否正确,其实就是用innertext 取到每一行 然后拆分价格和数目,然后在FormatNumber格式化一下拆分的函数是从网上找的

    1. Dim oWebElements,oDesc
    2. Set oDesc=description.Create()
    3. oDesc("micClass").value="WebElement"
    4. oDesc("html tag").value="span"
    5. oDesc("class").value="p-price"
    6. set oWebElements= Browser("奶粉 - 商品搜索 - 京东").Page("奶粉 - 商品搜索 - 京东").ChildObjects(oDesc)
    7. oCount=oWebElements.count()

    8. Dim tempObj
    9. Dim MyString, MyArray, Msg

    10. For i=0  To  oCount-1
    11.     Set tempObj = oWebElements.Item(i)
    12.         sliptString=tempObj.GetROProperty("innertext")

    13.         intPrice=between(sliptString,"¥","×")
    14.         intNums=between(sliptString,"×","")

    15.         intTotal=intTotal+(intPrice*intNums)
    16. Next

    17. msgbox "有"& oCount &"种商品"

    18. actPrice=between(Browser("奶粉 - 商品搜索 - 京东").Page("奶粉 - 商品搜索 - 京东").WebElement("共计").GetROProperty("innertext"),"¥","")

    19. If  FormatNumber(intTotal,2)=FormatNumber(actPrice,2) Then
    20.         Reporter.ReportEvent micPass, "共计相等", "共计价格为:"& actPrice
    21. Else
    22.         Reporter.ReportEvent micFail, "共计不相等", "共计价格为:"& actPrice &"各商品价格之和为:"& intTotal
    23. End If
    复制代码


    1. '得到两个字符串中间的字符串。   
    2. '例如:   
    3. 'text="人民币300元",tBefore="人民币",tAfter="元"   
    4. '使用between(text,tBefore,tAfter)得到300.   
    5. Public Function between(words,wordBefore,wordAfter)   
    6.     t1=InStr(words,wordBefore)   
    7.     If t1=0 Then  
    8.         between=words   
    9.     Else  
    10.         L1=Len(wordBefore)   
    11.         wordsRight=Right(words,Len(words)-t1-L1+1)   
    12.         t2=InStr(wordsRight,wordAfter)   
    13.         If t2=0 Then  
    14.             wordAfter=""  
    15.         End If  
    16.         If wordAfter="" Then  
    17.             t2=Len(wordsRight)+1   
    18.         Else  
    19.             t2=InStr(wordsRight,wordAfter)   
    20.         End If  
    21.         needWord=Left(wordsRight,t2-1)   
    22.     '   needWord=Mid(words,t1+L1,t2-t1-L1)   
    23.         between=needWord   
    24.     End If  
    25. End Function  
    复制代码
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.10]测试总司令

    8#
    发表于 2013-5-6 10:37:25 | 只看该作者
    回复 6# 黑羽祭


       嗯 有BUG 哈哈
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.10]测试总司令

    9#
    发表于 2013-5-6 16:13:29 | 只看该作者
    其实我随机学的不好 可以说就没用过
    所以我改成超过1000元删除最后的几张单子

    总价大大于1000元时,随机删除几张单,直到总价少于1000?


    判断总价是否大于1000 如果大于 记录deleteIndex开始位置 利用循环删除后几张单子


    1.         If  (intTotal>1000) and (deleteIndex=-1)Then
    2.                 deleteIndex=i
    3.         End If
    复制代码


    1. If  deleteIndex>=0Then
    2.         For j=deleteIndex To oCount-1
    3.                 Browser("奶粉 - 商品搜索 - 京东").Page("奶粉 - 商品搜索 - 京东").Link("name:=删除","index:=" & j).Click
    4.         Next
    5. End If
    复制代码
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.10]测试总司令

    10#
    发表于 2013-5-6 16:15:36 | 只看该作者
    谢谢你的问题 让我学习了好多

    描述性编程,拆分字符串,格式化数字类型
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.10]测试总司令

    11#
    发表于 2013-5-6 17:16:06 | 只看该作者
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2024-10-20 14:47
  • 签到天数: 564 天

    连续签到: 1 天

    [LV.9]测试副司令

    12#
     楼主| 发表于 2013-5-6 20:15:36 | 只看该作者
    回复 11# 赵佳乐SMILE


        这个是公司在做的项目,正在进行中,
    我一个人做测试 累呀
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.10]测试总司令

    13#
    发表于 2013-5-7 08:57:33 | 只看该作者
    回复 12# 让测试飞起来


        招人不 把我招去吧
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2024-10-20 14:47
  • 签到天数: 564 天

    连续签到: 1 天

    [LV.9]测试副司令

    14#
     楼主| 发表于 2013-5-7 11:32:16 | 只看该作者
    回复 2# 赵佳乐SMILE


    你这个是搜索的吧!?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2024-10-20 14:47
  • 签到天数: 564 天

    连续签到: 1 天

    [LV.9]测试副司令

    15#
     楼主| 发表于 2013-5-7 11:35:43 | 只看该作者
    回复 5# 赵佳乐SMILE


        获取总数的时候,要把鼠标放到那里,让那个购物车的弹出层出来才可以运行成功
    要不就会报错 运行到(item(i))时会报错,是越界吧!

    如果把 09到13行注销的话,得出的 msgbox 为空的!
    不是0
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2024-10-20 14:47
  • 签到天数: 564 天

    连续签到: 1 天

    [LV.9]测试副司令

    16#
     楼主| 发表于 2013-5-7 12:15:50 | 只看该作者
    回复 13# 赵佳乐SMILE


        你就别来抢我饭碗了,大姐.......
    加我Q呗,我问题多着呢!!!!
    1300115774
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.10]测试总司令

    17#
    发表于 2013-5-7 12:42:31 | 只看该作者
    回复 16# 让测试飞起来


        你在广州啊 我暂时还抢不着。。。
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.10]测试总司令

    18#
    发表于 2013-5-7 12:42:59 | 只看该作者
    回复 14# 让测试飞起来


        是搜索的 搜的奶粉
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-9-6 21:21
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    19#
    发表于 2013-5-8 15:32:30 | 只看该作者
      学习
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
    发表于 2013-5-11 11:01:56 | 只看该作者
    额(⊙o⊙)…那个将鼠标移动到那个控件,不是点击,貌似只能模拟录制,但是模拟录制后怎么获取那个页面的相关属性……而且模拟录制后,再针对那个页面属性调试脚本貌似会报错,你们是怎么解决的?
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-5 16:26 , Processed in 0.082433 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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