QTP 对象封装的原理:
1. 使用对象库 与 描述性编程 本质是一样的:
‘首先看对象库.TO(test object)也是根据存储在对象库的属性值列表来找RO(runtime object)的: ‘说明所有的TO可以用描述性编程来找到对象, 比如上面TO: Set TOObject = Browser("百度一下,你就知道").Page("百度一下,你就知道").Link("新 闻") Set DPObject = Browser("CreationTime:= 0").Page("Title := 百度一下,你就知道").Link("Text : = 新 闻","Html tag : = A")
‘而该对象又可以通过HTML DOM接口来实现: Set obj = Browser("CreationTime:= 0").Page("Title := 百度一下,你就知道"). Document. GetElementsByTagName("A") For i = 0 To obj.Length If obj(i).innerText = "新 闻" Then Exit For End If Next Set DOMObject = obj(i) |
2. 所有封装的对象基于IE对编程语言的接口实现的:
既然所有的对象通过HTMLDOM来找到的,那么QTP是怎么样封装的?应该是用IE COM接口来实现的, 我们假设上面那个对象:
Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate "http://www.baidu.com" Set obj = objIE.Document.GetElementsByTagName("A") For i = 0 To obj.Length If obj(i).innerText = "新 闻" Then Exit For End If Next Set COMObject = obj(i) |
这样我们发现不用QTP, 单纯用VBS就来实现我们想要的操作.所以,以此推断, 一切的对象是可以通过IE基于编程语言接口得到的.