51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 9497|回复: 22
打印 上一主题 下一主题

[求助] qtp 如何察看网页的源代码并且验证源代码?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-8-31 16:49:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
qtp 如何察看网页的源代码并且验证源代码?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2009-8-31 21:11:50 | 只看该作者
说说你的目的
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2009-8-31 21:37:28 | 只看该作者
录制的时候,通过IE的查看动作跳不出来吗?
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2009-9-1 09:32:31 | 只看该作者
http://www.baidu.com/s?wd=vbs+%B6%C1%C8%A1%CD%F8%D2%B3
这里有你要的答案,自己辛苦一下翻翻吧。
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2009-9-1 09:35:09 | 只看该作者
这个VBS好像可以,见过人家用VBS构造HTTP协议请求或者指定链接,不过比较麻烦
建议使用其它语言(比如Python),然后在调用吧,比较简单
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2009-9-1 11:58:07 | 只看该作者
可不可以用Browser.object.document.body.innertext?
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    7#
    发表于 2009-9-1 14:54:50 | 只看该作者
    刚才以google  页面为例试验了一下,可以使用下面的语句得到某些代码:
    Set objCollection =  Browser("Google").Object.Document.getElementsByTagName("html")
    objCollection.outerhtml

    现在的问题是:
    1, 通过上面的语句与通过 View Source得到的代码的内容不是完全相同,它的内容比通过 View Source得到的代码要多一些;
    2,通过上面的语句与通过 View Source得到的代码的内容,顺序并不完全一致。 如:通过上面的语句得到的内容是:
    <HTML><HEAD><TITLE>Google</TITLE>
    <META http-equiv=content-type content="text/html; charset=UTF-8">

    而通过 View Source得到的内容是:
    <html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"><title>

    [ 本帖最后由 walker1020 于 2009-9-1 15:05 编辑 ]
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    8#
    发表于 2009-9-1 14:56:48 | 只看该作者
    另外,要想使此问题的的彻底解决,必须要参考 DOM 。 可以参考http://www.w3school.com.cn/ 来获得需要的属性或方法
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    9#
    发表于 2009-9-1 14:59:17 | 只看该作者
    如果要获得正确 完整的Source code,必须要知道它是怎么生成的,是如何组织和构造的。这就要对 HTML DOM有深入的了解
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    10#
    发表于 2009-9-1 15:04:21 | 只看该作者
    原帖由 nbkhic 于 2009-9-1 11:58 发表
    可不可以用Browser.object.document.body.innertext?


    非常感谢nbkhic的提示。此问题已经超越了VBScript的内容。如果谁有时间和兴趣,可以继续研究下去,看看如何快速 准确地得到与通过 View Source得到完全一样的代码。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2009-9-1 15:23:09 | 只看该作者

    回复 8# 的帖子

    当安装QTP时,会注入BHOManager.dll到IE,查看了下BHO:
    BHO(Browser Helper Object,浏览器辅助对象,简称BHO)BHO是微软推出的作为浏览器对第三方程序员开放交互接口的业界标准,通过简单的代码就可以进入浏览器领域的“交互接口”(INTERACTIVED Interface)。通过这个接口,程序员可以编写代码获取浏览器的行为,比如“后退”、“前进”、“当前页面”等,利用BHO的交互特性,程序员还可以用代码控制浏览器行为,比如修改替换浏览器工具栏,添加自己的程序按钮等。这些在系统看来都是没有问题的。BHO原来的目的是为了更好的帮助程序员打造个性化浏览器,以及为程序提供更简洁的交互功能,现在很多IE个性化工具就是利用BHO的来实现。

    所以感觉通过QTP获取的Html页面理论上并非原始的页面,而是经过QTP处理的,猜的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2009-9-1 16:42:11 | 只看该作者

    实际上最可靠的是发送 get 请求

    本地dom会碰到一个问题导致页面内容不全。

    [ 本帖最后由 shanxi 于 2009-9-1 18:16 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2009-9-1 17:18:01 | 只看该作者

    回复 12# 的帖子

    所以我觉得VBS可能不太好实现。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2009-9-1 17:47:56 | 只看该作者
    原帖由 walker1020 于 2009-9-1 15:04 发表


    非常感谢nbkhic的提示。此问题已经超越了VBScript的内容。如果谁有时间和兴趣,可以继续研究下去,看看如何快速 准确地得到与通过 View Source得到完全一样的代码。


    最近工作太忙,所以没有时间进行试验。其实我的回复应该是搞错了。我本来想的是browser.page.document.body.innertext,最多也就是看看body里面的html代码有没有包含特定的节点,然后用函数写个断言。
    QTP里面用的应该是IE支持的DOM模型,之所以代码跟网页上面view source不一样可能是因为QTP只获取IE所支持的DOM的代码。IE本身对DOM标准的支持就不是很好。
    其实只要找到了Document对象,其他的一切结点都不难找到。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2009-9-1 18:23:57 | 只看该作者
    Set XmlHttp1=CreateObject("MSxml2.XMLHTTP")
    XmlHttp1.Open "GET","http://www.baidu.com",false
    XmlHttp1.Send
    b=XmlHttp1.ResponseText
    msgbox b''''''b是网页的源码
    简单吧?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2009-9-1 18:25:49 | 只看该作者

    回复 15# 的帖子

    就是这样的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2009-9-1 19:48:46 | 只看该作者
    收藏
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    18#
    发表于 2009-9-2 10:48:35 | 只看该作者
    原帖由 lvguobin 于 2009-9-1 18:23 发表
    Set XmlHttp1=CreateObject("MSxml2.XMLHTTP")
    XmlHttp1.Open "GET","http://www.baidu.com",false
    XmlHttp1.Send
    b=XmlHttp1.ResponseText
    msgbox b''''''b是网页的源码
    简单吧?


    非常感谢lvguobin的回复。下面是对上面的代码的验证结果:
    1,对于 http://www.google.com/codesearc,通过上面的代码得到的结果与通过ViewSource得到的结果完全一致;对于 http://www.google.cn, 通过上面的代码得到的结果与通过View Source得到的结果并不完全一致
    2,对于Web程序的某些中间运行过程中的页面,无法得到其URL,又该如何解决?

    [ 本帖最后由 walker1020 于 2009-9-2 11:01 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2009-9-2 10:53:41 | 只看该作者
    N多成熟的工具为啥就不能考虑下呢?
    Wget, Curl,nc。。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    20#
    发表于 2009-9-2 10:55:42 | 只看该作者
    无论如何,都要感谢lvguobin的回复
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-27 06:26 , Processed in 0.081199 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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