51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4667|回复: 21
打印 上一主题 下一主题

[原创] 如何验证随机打开的页面中是否包含特定链接或图片

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-11-11 17:54:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 chitty1204 于 2010-11-11 17:55 编辑

Set oDesc = description.Create()
         oDesc("micclass").value = "Image"
Set Lists = Browser("XXX").Page("XXXX").ChildObjects(oDesc)
        NumOfImages = Lists.count()
        Lists(i).click
到这里之后,打开的是一个新的页面。那现在我想判断下新打开的页面中是否包含有名为test.jpg的图片,下面的代码该怎么写呢?
我是绝对新手哈,请各位大侠赐教~~~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2010-11-11 18:01:05 | 只看该作者
等啊等啊等~~~
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2022-5-8 19:23
  • 签到天数: 137 天

    连续签到: 1 天

    [LV.7]测试师长

    3#
    发表于 2010-11-11 20:48:01 | 只看该作者
    关注
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2010-11-12 08:40:03 | 只看该作者
    关注
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2010-11-12 09:58:37 | 只看该作者
    if Browser("XXX").Page("url:=.*").image("name:=test.jpg").exist(1) then
    xxxxxxxxxxxxxxx存在
    end if
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2010-11-12 10:40:19 | 只看该作者
    回复 5# skyzhu
    Page("url:=.*"),这样就能获取到新打开的页面名称吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2010-11-12 10:46:02 | 只看该作者
    ....

    Page("url:=.*")   不是获取新打开的页面名称

    这个是 是指 所有打开的页面, 通配符   或是正则表达式。。。。

    是指 在所有的browser下的所有page下 存在image = test.jpg

    不过 这种 完全 通配的话  可能时间效率上不高, QTP会一一比较   来匹配  如果知道 这个新打开的页面的一些其他可遵循的属性  那就更能精确定位了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2010-11-12 11:00:38 | 只看该作者
    回复 6# chitty1204
    谢谢skyzhu。
    刚试了一下,我用的是
    If Browser("MEN - OPENING CEREMONY").Page("url:=.*").image("name:=france-flag-1.png").exist(1) then
    reporter.ReportEvent micPass, "Find image", "Image is found!" //////为什么我这条语句在报告里没有呢???
    end if
    新打开的页面上是存在我所需要验证的图片,可是为什么report里前面么说[Image].exist,可details那栏又说Object does not exist,这是什么情况呀?

    本帖子中包含更多资源

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

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
     楼主| 发表于 2010-11-12 11:04:13 | 只看该作者
    回复 7# momang
    谢谢哦,那应该怎么更有效得获得新打开的页面信息呢?能在我前面的代码基础上继续下去吗?
    我知道新打开的页面URL里面都会包含有“productid=XX”(XX是编号)
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2010-11-12 11:18:41 | 只看该作者
    回复  chitty1204
    谢谢skyzhu。
    刚试了一下,我用的是
    If Browser("MEN - OPENING CEREMONY").Page("ur ...
    chitty1204 发表于 2010-11-12 11:00



    看你的report里 是有的  这个if 的检查是成功的 发现了这个图
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2010-11-12 11:19:54 | 只看该作者
    你可以调试一下 给图片名换成一个不存在的   再run一下 看看结果是什么


    我好久没用QTP了 在公司机器上也没安装  暂时尝试不了呃
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2010-11-12 11:48:26 | 只看该作者
    前面只是给个提示。。。只是想说用类似方法解决

    给个具体的

    Lists(i).click   前获取链接地址,比如  url = lists(i).GetROProperty("链接的属性")
    然后
    If Browser("MEN - OPENING CEREMONY").Page("url:=" & "链接地址").image("name:=france-flag-1.png").exist(1) then

    PS: 直接用 url:=.* 在多个页面的情况下肯定找不到
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
     楼主| 发表于 2010-11-12 12:05:49 | 只看该作者
    回复 10# momang
    可是为什么我要写的micpass这个没有呢?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
     楼主| 发表于 2010-11-12 12:31:18 | 只看该作者
    回复 12# skyzhu
    url = lists(i).GetROProperty("链接的属性")----我这里取到的只能是所点击的那个图片链接的属性,我刚用object spy看过那个图片链接的所有属性了,跟我所要的新打开页面的pagename没有关联。
    可是我现在最需要的就是这个pagename,也就是page("")这里面的值呢。这个可以用什么方法取到呢?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2010-11-12 13:10:04 | 只看该作者
    url = lists(i).GetROProperty("src")
    url = lists(i).GetROProperty("href")
    总有一个是的,否则怎么弹出正确的页面,然后拼在后面的url属性里,别去找什么pagename
    If Browser("MEN - OPENING CEREMONY").Page("url:=" & url).image("name:=france-flag-1.png").exist(1) then
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
     楼主| 发表于 2010-11-12 13:20:44 | 只看该作者
    回复 15# skyzhu
    恩,两个问题哦,
    1. 我用了你说的Page("url:=" & url),可出来的report里面,还是跟上面的截图一样,说object does not exist.
    2. 为什么我的reporter.ReportEvent micPass, "Find image", "Image is found!" 这句不会写入到report里呢?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
     楼主| 发表于 2010-11-12 13:41:45 | 只看该作者
    回复 15# skyzhu
    If Browser("MEN - OPENING CEREMONY").Page("url:=" & url).image("file name:=france-flag-1.png").exist then
    reporter.ReportEvent micPass, "Find image", "Image is found!"
    print "found!"
    else
    reporter.ReportEvent micFail, "Find image", "Image is not found!"
    print "not found!"
    end if
    打开的页面里确实有france-flag-1.png这个图片,但就是不对。
    刚加了这么几句,应该是if判断那里出了什么问题,report里面fail有显示出来了,not found也有打印出来。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2010-11-12 13:44:19 | 只看该作者
    问题1
    1 请调试确认url取到的对不对
    2 可能需要等待更长的时间,页面加载慢, exist可能需要放长时间

    问题2
    if条件不满足,当然就没执行这句话

    另外上面的属性只是举例,具体值自己去调试分析才是目的
    这种的测试没必要用QTP这样的界面自动化测试来做,速度很慢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
     楼主| 发表于 2010-11-12 15:28:11 | 只看该作者
    回复 18# skyzhu
    恩恩,谢谢你一直回复我哈。主要的问题解决了,其他的我会自己调试的~^_^
    主要我现在有100多个页面需要核对里面是否包含有所需要的图片,所以就想到可以用QTP。这种case,你有其他更好的工具推荐吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
    发表于 2010-11-12 16:53:53 | 只看该作者
    这种方法也可以
    For i=0 to NumOfImages-1
        IF List(i).GetToProperty("name")="test.jpg" Then
            MsgBox "Exist"
        End IF
    Next
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-21 02:29 , Processed in 0.079705 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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