51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4669|回复: 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空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

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

使用道具 举报

该用户从未签到

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

使用道具 举报

该用户从未签到

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
回复 支持 反对

使用道具 举报

该用户从未签到

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

使用道具 举报

该用户从未签到

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

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

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

使用道具 举报

该用户从未签到

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也有打印出来。。。
回复 支持 反对

使用道具 举报

该用户从未签到

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里呢?
回复 支持 反对

使用道具 举报

该用户从未签到

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
回复 支持 反对

使用道具 举报

该用户从未签到

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

使用道具 举报

该用户从未签到

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

使用道具 举报

该用户从未签到

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:=.* 在多个页面的情况下肯定找不到
回复 支持 反对

使用道具 举报

该用户从未签到

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


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

使用道具 举报

该用户从未签到

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



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

使用道具 举报

该用户从未签到

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

使用道具 举报

该用户从未签到

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
回复 支持 反对

使用道具 举报

该用户从未签到

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

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

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

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

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

使用道具 举报

该用户从未签到

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

使用道具 举报

该用户从未签到

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

使用道具 举报

该用户从未签到

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

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-25 15:48 , Processed in 0.082638 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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