51Testing软件测试论坛

标题: qtp 如何察看网页的源代码并且验证源代码? [打印本页]

作者: myzle    时间: 2009-8-31 16:49
标题: qtp 如何察看网页的源代码并且验证源代码?
qtp 如何察看网页的源代码并且验证源代码?
作者: shanxi    时间: 2009-8-31 21:11
说说你的目的
作者: baitest    时间: 2009-8-31 21:37
录制的时候,通过IE的查看动作跳不出来吗?
作者: dreamever    时间: 2009-9-1 09:32
http://www.baidu.com/s?wd=vbs+%B6%C1%C8%A1%CD%F8%D2%B3
这里有你要的答案,自己辛苦一下翻翻吧。
作者: xiaoyaoke    时间: 2009-9-1 09:35
这个VBS好像可以,见过人家用VBS构造HTTP协议请求或者指定链接,不过比较麻烦
建议使用其它语言(比如Python),然后在调用吧,比较简单
作者: nbkhic    时间: 2009-9-1 11:58
可不可以用Browser.object.document.body.innertext?
作者: walker1020    时间: 2009-9-1 14:54
刚才以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 编辑 ]
作者: walker1020    时间: 2009-9-1 14:56
另外,要想使此问题的的彻底解决,必须要参考 DOM 。 可以参考http://www.w3school.com.cn/ 来获得需要的属性或方法
作者: walker1020    时间: 2009-9-1 14:59
如果要获得正确 完整的Source code,必须要知道它是怎么生成的,是如何组织和构造的。这就要对 HTML DOM有深入的了解
作者: walker1020    时间: 2009-9-1 15:04
原帖由 nbkhic 于 2009-9-1 11:58 发表
可不可以用Browser.object.document.body.innertext?


非常感谢nbkhic的提示。此问题已经超越了VBScript的内容。如果谁有时间和兴趣,可以继续研究下去,看看如何快速 准确地得到与通过 View Source得到完全一样的代码。
作者: xiaoyaoke    时间: 2009-9-1 15:23
标题: 回复 8# 的帖子
当安装QTP时,会注入BHOManager.dll到IE,查看了下BHO:
BHO(Browser Helper Object,浏览器辅助对象,简称BHO)BHO是微软推出的作为浏览器对第三方程序员开放交互接口的业界标准,通过简单的代码就可以进入浏览器领域的“交互接口”(INTERACTIVED Interface)。通过这个接口,程序员可以编写代码获取浏览器的行为,比如“后退”、“前进”、“当前页面”等,利用BHO的交互特性,程序员还可以用代码控制浏览器行为,比如修改替换浏览器工具栏,添加自己的程序按钮等。这些在系统看来都是没有问题的。BHO原来的目的是为了更好的帮助程序员打造个性化浏览器,以及为程序提供更简洁的交互功能,现在很多IE个性化工具就是利用BHO的来实现。

所以感觉通过QTP获取的Html页面理论上并非原始的页面,而是经过QTP处理的,猜的
作者: shanxi    时间: 2009-9-1 16:42
标题: 实际上最可靠的是发送 get 请求
本地dom会碰到一个问题导致页面内容不全。

[ 本帖最后由 shanxi 于 2009-9-1 18:16 编辑 ]
作者: xiaoyaoke    时间: 2009-9-1 17:18
标题: 回复 12# 的帖子
所以我觉得VBS可能不太好实现。。。
作者: nbkhic    时间: 2009-9-1 17:47
原帖由 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对象,其他的一切结点都不难找到。
作者: 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是网页的源码
简单吧?
作者: shanxi    时间: 2009-9-1 18:25
标题: 回复 15# 的帖子
就是这样的
作者: whoamiyaya    时间: 2009-9-1 19:48
收藏
作者: walker1020    时间: 2009-9-2 10:48
原帖由 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 编辑 ]
作者: xiaoyaoke    时间: 2009-9-2 10:53
N多成熟的工具为啥就不能考虑下呢?
Wget, Curl,nc。。。
作者: walker1020    时间: 2009-9-2 10:55
无论如何,都要感谢lvguobin的回复
作者: nbkhic    时间: 2009-9-2 11:17
原帖由 walker1020 于 2009-9-2 10:48 发表


非常感谢lvguobin的回复。下面是对上面的代码的验证结果:
1,对于 http://www.google.com/codesearc,通过上面的代码得到的结果与通过ViewSource得到的结果完全一致;对于 http://www.google.cn, 通过上面的代 ...

--------------------------------
代码不一致是不是ajax和隐藏HTML的问题?
作者: 新人请多关照    时间: 2009-9-2 12:28
原帖由 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是网页的源码
简单吧?


作者: 风车    时间: 2009-9-7 11:42
好复杂。。。。晕菜中




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2