通过描述性编程技术,来描述出来输入框:
setpo=browser("creationtime:=0").page("micclass:=page") setdesc=description.creatre() odesc("micclass").value="WebEdit" odesc("htmltag").value="input" ………… 在html中输入框的htmltag除了input其实还有textarea等 <textarearows="3"cols="20"> 内容.........内容 </textarea> description的item属性支持正则表达式,默认开关打开 odesc.Item.RegularExpression=true |
因此,可以修改成:
odesc("micclass").value="WebEdit" odesc.Item.RegularExpression=true odesc("htmltag").value="input|textarea", 这样就支持input和testarea两种文本框的形式 但在一些js框架中,输入框的tag就不至于这些了, 可能就是div,而且用qtp识别出来就是webelement, 而并非webedit,我们知道,webedit和webelement属于继承关系, 可以修改成这样 setdesc=description.creatre() ‘odesc.Item.RegularExpression=true odesc("micclass").value="WebElement" odesc("htmltag").value="input|textarea|div" |
完整脚本
‘文本框输入
functionsendkeys(propertyname,propertyvalue,value) setpo=browser("creationtime:=0").page("micclass:=page") ‘po也可以写为方法的参数 setdesc=description.creatre() odesc("micclass").value="WebElement" odesc("htmltag").value="input|textarea|div" '把所需要的tag标记都可以写进去 odesc(propertyname).value=propertyvalue setchild=po.childobject(odesc) ochild(0).setvalue |
’多个元素时,index也可以作为参数
endfunction
这样一来,只需要封装操作类型,而对于元素的类型,则都可以用WebElement来代替,然后htmltag则使用正则表达式符号“|”来匹配任意tag的其中的一个
调用:
callsendkeys("xpath","//input[@name='username']","test001")
可以看出,所有网页元素,它的micclass其实都可以写成webelement。
如果qtp识别不出的web元素,可以通过其他的辅助工具来帮助来识别