51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1800|回复: 0
打印 上一主题 下一主题

[原创] qtp 脚本控制js控件dtree,实现随机展开和选取dtree中的node

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2011-10-25 17:41:15 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
js 脚本代码:
function expSelNod(sl){
if (deptTree.aNodes[sl]._hc) {deptTree.o(sl,deptTree.aNodes[sl].id);}
else{selNod();}
};
function selNod(){
var l=deptTree.aNodes.length;
var zsl=parseInt(Math.random()*l);
var el=zsl;
for(var i=0;i<l-1;i++ ) {
if(qtpOp.title.indexOf(deptTree.aNodes.pid)>=0 || qtpOp.title.indexOf(deptTree.aNodes.id)>=0){
  el=i;
  if( i>=zsl){break ;}
  }
};
select(deptTree.aNodes[el].id,deptTree.aNodes[el].name);
qtpOp.title="end"
};
function expAChildNod(sl){
var l=deptTree.aNodes.length;
var zsl=parseInt(Math.random()*l);
var el=zsl;
for(var i=0;i<l-1;i++ ) {
if(deptTree.aNodes.pid==deptTree.aNodes[sl].id){
el=i;
if(i>=zsl)break ;
}
};
qtpOp.title=qtpOp.title+","+el;expSelNod(el);
};
function mFun(){
debugger;
if (qtpOp.title==''){
var tl=deptTree.aNodes.length;
var tzsl=parseInt(Math.random()*tl);
if(tzsl==0)tzsl=1;qtpOp.title=tzsl;
expSelNod(tzsl);
};
else  {
  var pid=qtpOp.title.split(',');
  if (pid.length>0) expAChildNod(pid[pid.length-1]);
}
};
document.getElementById('qtpOpt').onclick=mFun

将以上代码存入文本文件中

qtp脚本代码:
'该函数完成对dtree js控件的随机展开和随机点取
'pageObj:dtree 控件所在的页面
'dreeObjStr:dtree控件名称
Public Function selRamDtreeNode(pageObj, dreeObjStr)
Dim newObjDiv
Dim adobj
Dim selNode
Dim objHead,objScript          
Dim tmpstr
tmpstr=readTxt("E:\qtp script\selNode.txt")
set newObjDiv = pageObj.Object.createElement("<div id='qpttest'>")
pageObj.Object.body.appendChild newObjDiv
Set adobj= pageObj.Object.getElementById("qpttest")
jsStr = "<input name=qtpOp id=qtpOpt  type=button value=qtpOp "
                       
jsStr = jsStr  & ">"
adobj.innerhtml = jsStr

Set objHead = pageObj.Object.getElementsByTagName("HEAD").item(0)
Set objScript = pageObj.Object.createElement( "script" )
objScript.language = "javascript"
objScript.type = "text/javascript"
objScript.id = "sIdTest"
objScript.defer = true
objScript.text =tmpstr
objHead.appendChild( objScript )
a=pageObj.WebButton("name:=qtpOp").object.title             
do  while  a<>"end"
    pageObj.WebButton("name:=qtpOp").click
    a=pageObj.WebButton("name:=qtpOp").object.title
    wait 1
Loop
End Function

'读取文件
Public Function readTxt(filePath)
   Dim fso,openfile
   Dim str,restr
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set openfile=fso.OpenTextFile(filePath,1,true)
   Do  Until openfile.AtEndOfStream

                str=openfile.ReadLine
        restr=restr&str
   Loop
       
   openfile.Close
       
   Set fso=Nothing
   readTxt=restr


End Function
action 调用
Dim dtreeobj


Set dtreeobj= Browser("**").Page("**").Frame("dept_frame")
                       
selRamDtreeNode dtreeobj,"deptTree"

以上代码参考了http://blog.sina.com.cn/s/blog_46fe1e110100di9i.html中部分代码

欢迎高手提供更好的意见
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-27 19:04 , Processed in 0.087578 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表