%y#oxR[ {2_VK0在使用QTP测试WEB页面时,经常需要利用测试对象中的Object属性来访问和操作DOM,因此,QTP自动化测试工程师非常有必要掌握一些常用的DOM知识。
So9oaG
k}0!u
A:M.p$Do0 QTP支持直接访问DOM(Document Object Model),可以通过DOM来访问HTML标签。在QTP中,访问DOM是通过使用Page测试对象的Object属性来进一步访问的。
_5D.}+ttX051Testing软件测试网P/?#o b^2w 下面就列举了一些常用的DOM属性、方法和集合:
8_j6P6t"r2?_051Testing软件测试网8imp%jf$G:e 常用DOM 属性51Testing软件测试网Jl%p2M[5yG
!as4x-^:?:l-y%y0 ● className.同一样式规则的元素用相同的类名。可以通过className快速过滤出一组类似的元素。
(DA,E0mN0j*[051Testing软件测试网
e0`)K}%nh0Iry ● document.用于指向包含当前元素的文档对象。
a2^3u;R4k&g051Testing软件测试网Hw^;i|5O4Q0q ● id.当前元素的标识。如果文档中包含多个相同id的元素,则返回一个数组。
,M r$|H JA(b4vP|0kdb/b%N#j0O3}0 ● innerHTML.用于指向当前元素的开始标记和结束标记之间的所有文本和HTML标签。51Testing软件测试网 _1t0R$jp8dp
q,m v'D,JD'K8A0 ● innerText.用于指向当前元素的开始标记和结束标记之间的所有文本和HTML标签。
I#} UB$l&`&y0X8p,G'nI-bG~+@0 ● offsetHeight, offsetWidth.元素的高度和宽度。51Testing软件测试网w5a u
E/@s*i
-`E(f8A io6}D%j0 ● offsetLeft, offsetTop.当前元素相同对于父亲元素的左边位置和顶部位置。51Testing软件测试网4v#_'W4e&} xRE
51Testing软件测试网@%u _NW ● outerHTML.当前元素的开始标记和结束标记之间的所有文本和HTML标签。51Testing软件测试网O"K,n|}6XN
51Testing软件测试网N%b`:b&r$L? ● outerText.当前元素的开始标记和结束标记之间的所有文本,但不包括HTML标签。51Testing软件测试网T]GY/g)r1a
51Testing软件测试网f&s;@q%Zh*cm| ● parentElement.当前元素的父亲元素。51Testing软件测试网8ni6cP+j5k lr
7Y~\s'lh0 ● sourceIndex.元素在document.all集合中的索引(index)。
"i h)eM2cv(eW051Testing软件测试网jv
ePq y ● style.元素的样式表单属性。51Testing软件测试网I+BE}-b(\!a*kW[
51Testing软件测试网y
s+L$k'_ptA ● tagName.当前元素的标签名。51Testing软件测试网6|)u2X+d)m
qP$S!duJ
Jz^5g`0 ● title.在IE中,代表元素的tool tip文本。
1B8Fm0E2Y(Q051Testing软件测试网 Q*Di!g @pQ)k 常用DOM 方法
:cPe#|\}B
G7eO051Testing软件测试网!?_lq$d`(`9K;` ● click().模拟用户对当前元素的鼠标点击。51Testing软件测试网zo O
q H N
51Testing软件测试网fK-|g"\a3I ● contains(element).用于判断当前元素是否包含指定的元素。51Testing软件测试网9M)j/Ffu*T
P
q3@T
up
{0 ● getAttribute(attributeName, caseSensitive).返回当前元素所包含的某个属性,参数attributeName为属性名、caseSensitive表示是否大小写敏感。
I$d2[l'X Go02w8Syp$g0 ● setAttribute(attributeName, value, caseSenstive). 设置当前元素的属性。51Testing软件测试网r%`.q3Fe9C
51Testing软件测试网'Qt S"bl7?t 常用DOM 集合51Testing软件测试网;}
b0S
l"uj
51Testing软件测试网$yN8z)y
t1Q$^ ● All[].当前元素中包含的所有HTML元素的数组。
3bH U?X051Testing软件测试网I,tI)Wez(V^ ~ ● children[].当前元素包含的子元素。51Testing软件测试网6d$iI%wI]S*a`
|TxBAXHh0例如下面的脚本获取到Google主页中的:
r[a
[P[g0On Error Resume Next
51Testing软件测试网(x,g$V%fLSet Doc = Browser("Google").Page("Google").Object
3]R+Q]L
d*j(en0' 循环获取Page中的所有对象
51Testing软件测试网0UD;@)o*NFor Each Element In Doc.all
51Testing软件测试网+@O6a'D.h TagName = Element.TagName ' 获取标签名
51Testing软件测试网 dm
J$C!]?P9U InnerText = Element.innerText ' 获取inner text.
51Testing软件测试网8IE)W1S2l+H8U ' 把信息写入测试结果
KkW?8]6c0 Reporter.ReportEvent 0, TagName, InnerText
51Testing软件测试网TW(Ei
}Next