少年智则国智,少年富则国富,少年强则国强,少年独立则国独立,少年自由则国自由,少年进步则国进步,少年胜于欧洲,则国胜于欧洲,少年雄于地球,则国雄于地球。红日初升,其道大光;河出伏流,一泻汪洋;潜龙腾渊,鳞爪飞扬;乳虎啸谷,百兽震惶;鹰隼试翼,风尘吸张;奇花初胎,矞矞皇皇;干将发硎,有作其芒;天戴其苍,地履其黄;纵有千古,横有八荒;前途似海,来日方长。美哉,我少年中国,与天不老!壮哉,我中国少年,与国无疆!

QTP以DOM技术处理AJAX对象最佳实践【附源码】

上一篇 / 下一篇  2009-09-25 12:39:31

-}.s Ew _]0    公元2006年后,AJAX在当前的WEB应用开发中广泛使用;依靠强大的异步处理机制,AJAX实现了动态、美妙的WEB界面与服务器交互;然而对于自动化测试,AJAX确实一个冲击!传统的对象识别技术已经无法解析AJAX页面元素;今日叶赫华给大家一个实例,供测试同行学习参考!51Testing软件测试网6{ClL`s c:\Z
    解析AJAX WEB页面的方式有很多,这里Sincky只是通过DOM技术这种方式来说明问题。这里以福建莆田人才在线网站为例,网址http://www.eptrc.com/job_list.aspx,打开首页后,大家会看见【企业招聘信息】区域有很多招聘信息,仔细分析它的实现技术,它不再是传统的HTML TABLE显示方式,而是DIV层技术,这也是AJAX技术里非常通用的WEB元素显示模式。现在我们以目前最主流的HP Mercury QuickTest Pro为例,来讲解如何获得该网站首页【企业招聘信息】区域所有的企业名称。

^oUuyK"u0
  • 打开本机安装的QTP,加载WEB插件,推荐QTP版本是9.2以上
  • 新建一个QTP脚本
  • 关闭当前桌面所有浏览器
  • 新开一个IE,定位到http://www.eptrc.com/job_list.aspx
  • 打开当前脚本的对象库,添加新对象:把刚才IE里的莆田人才网首页的Page对象加载到对象库即可;即当前脚本只有Browser和Page二级对象,方便起见,它们的名字可以改成Browser和Page;关闭对象库
  • 把以下代码拷贝到当前脚本编辑窗口

(k0X"[x_"Y#P0SystemUtil.Run "C:\Program Files\Internet Explorer\iexplore.exe","","C:\Documents and Settings\叶赫华","open"51Testing软件测试网8qKWTR([5h
Browser("Browser").Page("Page").Sync51Testing软件测试网df'\w6I{Y}
Browser("Browser").Navigate "http://www.eptrc.com/job_list.aspx"
]V6p,usZ0Browser("Browser").Page("Page").Sync

dNH+Jz9Y _&m,?0

*U!V8oxI^Pr{0Dim DOM, Flag, oDIVs, i, myDiv, strCompanyNameTitleDIV, mySearchTable, myChildDIVs, strCompanyName51Testing软件测试网H E1L/lHt,f6k
Set DOM = Browser("Browser").Page("Page").Object.documentElement51Testing软件测试网$bm{u8ABj7r
Flag = 0
/i P/j,^8j'Z0Set DIVs = DOM.GetElementsByTagName("DIV")

2ECy,rH;CT|0

'jbap w2?4LK9H0For i = 0 to oDIVs.length - 1 
j.wi!OALH0    If trim(oDIVs(i).innertext) = "企业招聘信息" then
o?4o"Cof6g0        Flag = Flag + 151Testing软件测试网H w%|/yA.qI
        Set myDiv = oDIVs(i)51Testing软件测试网?4Mu/w"c;\ D
    End if
8A)N!g:?? y4@7Mkv0I0Next51Testing软件测试网.Z4m x3`(_o

51Testing软件测试网e5|%`znbp$]5C&G

If Flag = 1 Then51Testing软件测试网U6xr'Q k8{5L
    Flag = 051Testing软件测试网'B'E9?PK M*V
    Set strCompanyNameTitleDIV = myDiv.ParentNode51Testing软件测试网lTd!S-Y-Y+e]@(N
    If trim(strCompanyNameTitleDIV.className) = "texttitle" Then
H l$T!]F1P-VNc0        Set mySearchTable = strCompanyNameTitleDIV.NextSibling51Testing软件测试网}%ex'j@
        Set myChildDIVs = mySearchTable.ChildNodes

R/C"q8\ S*FiX051Testing软件测试网gqWR9f7Ds@

        For i = 0 to myChildDIVs.length - 1
U;?tN%M {DL0            If trim(myChildDIVs.item(i).classname) = "row" or trim(myChildDIVs.item(i).classname) = "rowhl" Then51Testing软件测试网1? R&ynM
                Flag = Flag + 151Testing软件测试网)o$xj}+cZc
                strCompanyName = myChildDIVs.item(i).firstChild.getElementsByTagName("DIV").item(1).innertext
hN-Wc3M S1\0                Print strCompanyName
_ zA#uAz\*C0            End If51Testing软件测试网VRzTtDR+W-J
        Next51Testing软件测试网]6p*gfR*U~&T
    End If
_1I1TA'K/O0End If51Testing软件测试网f(@E*E2|7k JN

51Testing软件测试网)B,} g)`Q K,H/C0H

Set DIVs = Nothing51Testing软件测试网7l-|%c4V mVT g'~
Set DOM = Nothing

1X'~I"B'S})O z0
  • 关闭刚才的IE;执行该QTP脚本,会弹出QTP打印小窗口,显示莆田人才网首页企业招聘信息区域所有的企业名称,例如我这里执行结果是:
    .M s(mX?J ]0好朋友茶叶茶具连锁机构
    ]8d3C BL!w0莆田市人才职业培训学校
    &v1O&i CA1U0恒信贸易
    -lpMxy nJn0泉州蒙羊51Testing软件测试网3|:nlPm#a5J!C%e
    福建莆田市远润装修装饰有限公司51Testing软件测试网y[t ug"f6Fz
    兴安药业有限公司51Testing软件测试网.kI"t8E?DkFs
    拓森贸易
    6ePw9h&~X |mE#\*i0莆田永辉超市有限公司
    6y(W%z:Z}"B N1kC}F0福洲晋安区网玛动漫人才培训中心51Testing软件测试网(pe @ ?eyKt+u
    莆田天发投资咨询有限公司51Testing软件测试网AUbY:\ x
    易迈贸易有限公司51Testing软件测试网6`4l*[!|!w{'Pq
    莆田市东南纸业工贸有限公司51Testing软件测试网,T ] [A[
    神龙木业有限公司
    BV6v{8u0莆田市竞升生物科技发展有限公司51Testing软件测试网ME5\!L5@0t Ou
    兄弟连医疗网络公司51Testing软件测试网 u?[u+CFbx
    莆田市华达电子有限公司51Testing软件测试网x Y.y?f j
    正荣(莆田)置业发展有限公司51Testing软件测试网&@2d2Z L(?(@4]
    东兴贸易有限公司
    FV#B!B1@0快乐星幼儿园
    n DQW4L7[0欧捷投资贸易
51Testing软件测试网O%o&@,H!|!m5c

说明:这里Sincky用的是最土的全页扫描方式来获取关键字标记;如果需要处理的AJAX区域有特别标记,可以此标记去定位AJAX区域,再进一步处理,从而节省脚本执行时间。51Testing软件测试网xQl$kpY Pqy*@

dY`-g V:EB~0

 【完】 作者:叶赫华  2009年9月51Testing软件测试网#O@}Z3Qeh


TAG:

 

评分:0

我来说两句

日历

« 2023-06-18  
    123
45678910
11121314151617
18192021222324
252627282930 

数据统计

  • 访问量: 19441
  • 日志数: 27
  • 建立时间: 2006-12-22
  • 更新时间: 2007-07-18

RSS订阅

Open Toolbar