myzle 发表于 2009-8-31 16:49:40

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

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

shanxi 发表于 2009-8-31 21:11:50

说说你的目的

baitest 发表于 2009-8-31 21:37:28

录制的时候,通过IE的查看动作跳不出来吗?

dreamever 发表于 2009-9-1 09:32:31

http://www.baidu.com/s?wd=vbs+%B6%C1%C8%A1%CD%F8%D2%B3
这里有你要的答案,自己辛苦一下翻翻吧。

xiaoyaoke 发表于 2009-9-1 09:35:09

这个VBS好像可以,见过人家用VBS构造HTTP协议请求或者指定链接,不过比较麻烦
建议使用其它语言(比如Python),然后在调用吧,比较简单

nbkhic 发表于 2009-9-1 11:58:07

可不可以用Browser.object.document.body.innertext?

walker1020 发表于 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 编辑 ]

walker1020 发表于 2009-9-1 14:56:48

另外,要想使此问题的的彻底解决,必须要参考 DOM 。 可以参考http://www.w3school.com.cn/ 来获得需要的属性或方法

walker1020 发表于 2009-9-1 14:59:17

如果要获得正确 完整的Source code,必须要知道它是怎么生成的,是如何组织和构造的。这就要对 HTML DOM有深入的了解

walker1020 发表于 2009-9-1 15:04:21

原帖由 nbkhic 于 2009-9-1 11:58 发表 http://bbs.51testing.com/images/common/back.gif
可不可以用Browser.object.document.body.innertext?

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

xiaoyaoke 发表于 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处理的,猜的

shanxi 发表于 2009-9-1 16:42:11

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

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

[ 本帖最后由 shanxi 于 2009-9-1 18:16 编辑 ]

xiaoyaoke 发表于 2009-9-1 17:18:01

回复 12# 的帖子

所以我觉得VBS可能不太好实现。。。

nbkhic 发表于 2009-9-1 17:47:56

原帖由 walker1020 于 2009-9-1 15:04 发表 http://bbs.51testing.com/images/common/back.gif


非常感谢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:57

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:49

回复 15# 的帖子

就是这样的 :lol

whoamiyaya 发表于 2009-9-1 19:48:46

收藏:lol

walker1020 发表于 2009-9-2 10:48:35

原帖由 lvguobin 于 2009-9-1 18:23 发表 http://bbs.51testing.com/images/common/back.gif
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:41

N多成熟的工具为啥就不能考虑下呢?
Wget, Curl,nc。。。

walker1020 发表于 2009-9-2 10:55:42

无论如何,都要感谢lvguobin的回复
页: [1] 2
查看完整版本: qtp 如何察看网页的源代码并且验证源代码?