51Testing软件测试论坛

标题: 关于描述性编程的疑惑,望高手能予以解答 [打印本页]

作者: xhhuang1618    时间: 2009-8-31 21:55
标题: 关于描述性编程的疑惑,望高手能予以解答
学习QTP已有一段时间了,但始终沉溺在录制脚本和修改脚步的快感中.今天突然在想,如果我的整个QTP脚本都通过描述性编程来做,是否真的可行?带着这样的一个问题,我写了下面一段脚本,但不幸的是脚本没有想我预期的那样执行,请各位帮我解决一下我的问题.谢谢!
'这是一个QTP自带的示例程序
Dim var_LoginName,var_UserName,var_PassWord,var_Button
'分别定义了窗口,Agent Name,PassWord三个属性
var_LoginName = "Login"  
var_UserName= "Agent Name"
var_PassWord = "Password"
var_Button = "OK"
'激活窗口
Dialog("text:="&var_LoginName).Activate
'在Agent Name和PassWord文本框中输入值,但QTP并不识别WinEdit,不知为什么??
Dialog("text:="&var_LoginName).WinEdit("text:="&var_UserName).type "mercury"
Dialog("text:="&var_LoginName).WinEdit("text:="&var_PassWord).type"mercury"
'点击Button按钮
Dialog("text:="&var_LoginName).WinButton("text:="&var_Button).Click
作者: ls_721521    时间: 2009-8-31 22:31
text属性唯一就在加属性吧,用spy查看一下
作者: kings727    时间: 2009-9-1 13:42
是不是有多个WinEdit,你的描述不具备唯一性?
如果多个相同的控件可以添加index来 区别多个相同的控件。
作者: shotstar    时间: 2009-9-1 20:24
估计很可能是对象不唯一或者是密码文本框的text属性不是Password。如果用spy查看了发现text属性是Password,那么给你个方法看看

Set oDesc=Description.Create()
oDesc("text")="Password"
oDesc("micclass")="WinEdit"
Set Lists=Dialog("text:="&var_LoginName).ChildObjects(oDesc)
num=Lists.count
msgbox num

就可以知道这个Dialog下面有多少个text是Password的WinEdit了。
作者: xhhuang1618    时间: 2009-9-4 11:40
谢谢楼上各位,问题已经解决。是我把WinEid的属性搞错了




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2