51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

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

[原创] QTP 自动点击搜索出来的页面链接

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-4-8 17:09:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
HI,大家好:我现在遇到一个问题
操作
1、打开首页http://www.google.cn
2、输入要搜索的词: testing
3、点击 搜索:结果会出现10个满足要求的链接
  我的要求是:想通过QTP录制上面的脚本后,让QTP实现自动的点击 上面的10个链接,不会人来点击。
不知道有什么好的办法吗?请大侠指教。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2009-4-8 18:53:10 | 只看该作者
Copy到QTP中可直接执行。为了方便被执行,脚本全改写成描述性编程的方式了。脚本主要是用父对象的思想来解决问题。
对搜索出来的链接的是否为子链接做了判断,如果不需要区分只需删除掉desc("x").value = 18就好了。

  1. SystemUtil.CloseProcessByName "iexplore.exe"
  2. SystemUtil.Run "C:\Program Files\Internet Explorer\IEXPLORE.EXE","http://www.google.cn",,,3
  3. Browser(":=").Page(":=").WebEdit("name:=q").Set "testing"
  4. Browser(":=").Page(":=").WebEdit("name:=q").Submit
  5. Set desc = Description.Create()
  6. desc("micclass").value = "WebElement"
  7. desc("html tag").value = "LI"
  8. desc("class").value = "g"
  9. desc("x").value = 18
  10. Set odesc = Description.Create()
  11. odesc("micclass").value = "Link"
  12. set oWEs = Browser(":=").Page(":=").ChildObjects(desc)
  13. If oWEs.Count >= 10 Then
  14.         iCount = 10
  15. Else
  16.         iCount = oWEs.Count
  17. End If
  18. For i=1 to iCount
  19.         Set oLinks = oWEs(i-1).ChildObjects(odesc)
  20.         oLinks(0).Click
  21.         Browser("CreationTime:=1").Close
  22. Next
  23. Set desc = Nothing
  24. Set odesc = Nothing
复制代码

[ 本帖最后由 hsjzfling 于 2009-4-8 18:54 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2009-4-9 17:03:40 | 只看该作者
3楼自己运行下就好了嘛,脚本copy到QTP中就能run了。

Ajax确实会导致部分问题,用QTP处理起来稍微麻烦一点点
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2009-4-9 18:05:43 | 只看该作者
SystemUtil.Run "iexplore","www.google.com"
Browser("Google").Page("Google").WebEdit("q").Set "testing"
Browser("Google").Page("Google").WebEdit("q").Submit

For i = 0 to 9
        Browser("Google").Page("Google").Link("class:=l","index:="&i).Click
        Browser("CreationTime:=1").close
Next

Browser("CreationTime:=0").close
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2009-4-9 18:34:11 | 只看该作者

回复 5# 的帖子

点击search之后会刷新生成新页面,也没有啥异步处理的东东,对于该脚本而言不会存在Ajax导致的问题,也不会有同步的问题了。

5楼所指的Ajax问题,恕在下愚钝,还请明示

BTW,desc("x").value = 18 这个值可能会跟分辨率等因素相关,可能会导致搜索不到链接,可以考虑注释掉;IE可能会阻止点击链接之后的弹出窗口,Allow下就行了。
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2009-4-9 18:42:47 | 只看该作者
原帖由 kasimxiao 于 2009-4-9 18:05 发表
SystemUtil.Run "iexplore","www.google.com"
Browser("Google").Page("Google").WebEdit("q").Set "testing"
Browser("Google").Page("Google").WebEdit("q").Submit

For i = 0 to 9
        Browser("Google").Page ...


不错,我之前都还没注意到class属性
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2009-4-10 11:10:10 | 只看该作者

回复 9# 的帖子

列出候选框确实是用了Ajax.....但是这个和LZ的需求有啥关系呢。。。LZ并不是要去候选框中选取值,而是点了搜索之后去找搜索结果,貌似这个和Ajax没什么关系了吧。

就这个列出候选框而言,如果要去选取候选结果那也不难,Ajax带来的问题也不大,QTP能很好的帮助我们做到。
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2009-4-10 18:34:31 | 只看该作者

回复 11# 的帖子

1. 论坛上每个人都可能成为老师。本着一事不烦二主的原则,还是请你帮忙解释下吧,实在不理解点击search刷新页面之后和Ajax还有什么关系。
2. 网络延时无处不在,和Ajax也扯不上啥关系吧。网络延时大那就去修改下配置中对象同步时间与页面等待的时间好了。
3. 本人测试下来,确实没有遇到你所提到的问题。你如果遇到了,还请帮忙指出来。
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2009-4-10 19:33:31 | 只看该作者

回复 13# 的帖子

谢谢回答。

关于Ajax的异步运行我也略微知道一些。但据我所知,google点击搜索刷新页面之后并没有做异步处理。。。

你在9F中提到"输入test后,会列出候选框"这个大家都知道用了Ajax,但无视掉候选框直接点搜索后刷新页面了也还用了Ajax做异步处理么?
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2017-7-4 15:34
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    10#
    发表于 2009-4-12 13:53:09 | 只看该作者
    使用DOM编程。我遇到过这种问题,已经解决
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2009-4-15 11:57:58 | 只看该作者
    看了半天,不知道shanxi在说什么,你说的完全和LZ的问题没有关系。在这个测试中是不存在AJAX的问题的。hsjzfling是正确的回答了LZ的问题。

    解决问题才是王道。不要扯到一些和LZ没有关系的技术点。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2009-4-22 15:01:24 | 只看该作者

    能否有简单一点的代码

    二楼的这段代码能否精简一下
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2009-5-14 16:27:27 | 只看该作者
    顶一个
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2010-10-5 16:29:05 | 只看该作者
    请教一下Browser("Google").Page("Google").Link("class:=l","index:="&i).Click 中
    class:=L是是么含义?class这个属性很少能找到相关资料。 如果搜不到符合条件的就会报错,如何解决?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2010-10-11 11:45:21 | 只看该作者
    收藏一个,多谢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2010-10-11 11:52:54 | 只看该作者
    澳门的穿校服的美女
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2010-10-11 20:23:42 | 只看该作者
    Browser("Google").Page("Google").Link("class:=l","index:="&i).Click 我用Spy 识别连接 没有Class和Index这两个属性哦
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2010-10-12 08:12:34 | 只看该作者
    Browser("Google").Page("Google").Link("class:=l","index:="&i).Click

    有必要非要加上class属性么?
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-26 05:40 , Processed in 0.077327 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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