这两天用
qtp决定做个简单登陆的脚本,于是在163邮箱上做了一个实验,这个试验中主要熟悉了对弹出对话框检查的实现方法,涉及的
测试用例有这样
1、不输入用户名和不输入密码--》点击登陆
2、输入用户名,但不输入密码--》点击登陆
3、输入用户名,输入错误的密码--》点击登陆
这三个动作结果不同,1、2种操作点击登陆后,页面会显示对话框,显示正确的提示:
1、弹出对话框显示用户名不能为空
2、弹出对话框显示密码不能为空
3、进入登陆失败页面,显示用户名或者密码错误,并且可以重新登陆
对于第三种错误信息的检查我们可以直接在
web页面上设置文本检查点,但是对于弹出对话框,我却不知道怎样解决
于是下来查了一下这方面的资料,可以用static("**").GetROProperty("
test")得到弹出框内容于是生成下面代码
if Browser("网易163免费邮--中文邮箱第一品牌").Dialog("Microsoft Internet Explorer").Exist(1) then
error_message=Browser("网易163免费邮--中文邮箱第一品牌").Dialog("Microsoft Internet Explorer").Static("请输入您的用户名 ?").GetROProperty("test")
If error_message="请输入您的用户名 ?" Then
........
但是出现了问题,虽然在object spy里面可以看到static的test属性值,但是程序总不能正确执行,我在给error_message赋值后,检查是否取道,做了一个msgbox(error_message)发现取值为空,很奇怪,最后想到很有可能是GetROProperty取的test的属性在运行中没有值,于是发现还有一个属性也是显示的"请输入您的用户名 ?" ,于是试了一下,代码修改成如下
if Browser("网易163免费邮--中文邮箱第一品牌").Dialog("Microsoft Internet Explorer").Exist(1) then
error_message=Browser("网易163免费邮--中文邮箱第一品牌").Dialog("Microsoft Internet Explorer").Static("请输入您的用户名 ?").GetROProperty("regexpwndtitle")
If error_message="请输入您的用户名 ?" Then
........
又运行了一遍,成功,至此这个问题解决
解决后,又发现还有一个方式取到弹出框的值GetVisibleText,则第二段代码试了一下,一次成功
总结:检查弹出对话框的内容有两种方式
1、取动态运行属性值
2、用vb函数GetVisibleText
其实第二种方式更简单,不用去查看弹出对话框的属性了。至此登陆对话框的脚本修改完毕,现在放上检查弹出对话框的所有代码
if Browser("网易163免费邮--中文邮箱第一品牌").Dialog("Microsoft Internet Explorer").Exist(1) then
error_message=Browser("网易163免费邮--中文邮箱第一品牌").Dialog("Microsoft Internet Explorer").Static("请输入您的密码 ?").GetVisibleText(top)
If error_message="请输入您的密码 ?" Then
Browser("网易163免费邮--中文邮箱第一品牌").Dialog("Microsoft Internet Explorer").WinButton("确定").Click
else
Browser("网易163免费邮--中文邮箱第一品牌").Close
End If
else
Browser("网易163免费邮--中文邮箱第一品牌").Close
end if