51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3960|回复: 10
打印 上一主题 下一主题

[原创] 如何在QTP9.0中获取用alert 弹出的对话框信息?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-3-21 12:15:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
图片如下,该对话框是由脚本弹出的
在8。2中可以用obj.getVisible()函数得到该对话框中所有的文本信息(包括标题和按钮的text)
现在升级到QTP9.0后,这个函数去掉了,不能用
我用SPY查看 ,其中的文本信息为 Static类型
根本就取不到这个信息
大家帮帮忙看看



注:
大家也可以用下面的脚本用QTP试试看
<html>
<body>
<script language=javascript>
alert("gogo");
</script>
<body>
</html>
把这段脚本放在一个文本文件里,然后将该文件后缀改为html 然后双击就得到一个弹出对话框了
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-3-21 12:28:47 | 只看该作者
可以取到的,LZ可能在SPY的时候没有取对地方。
Browser("Browser").Refresh
Browser("Browser").Dialog("Microsoft Internet Explorer").Static("gogo").Check CheckPoint("gogo")
Browser("Browser").Dialog("Microsoft Internet Explorer").WinButton("OK").Click
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2007-3-21 14:31:24 | 只看该作者

无息,你可以去当版主了。

无息,谢谢了,问题用你的方法解决了
看你回了好多贴,你都可以去当版主了

不过,我是要获得那个弹出对话框的值啊
开始,我并不知道那个弹出对话框里的文本是什么内容
要怎样才能获得弹出文本框的值呢?
-------------
哈哈,已经想办法解决了
我用  Browser("新增项目").Dialog("Microsoft Internet Explorer").Static("GOGO").Output CheckPoint("GOGO")  把文本输出到工作表中了
只是如果文本改变的话,不知道那个Static("GOGO")还能不能识别

[ 本帖最后由 sky-vid 于 2007-3-21 16:27 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2007-3-21 18:14:50 | 只看该作者
我刚才试了一下,用output文本变化的还是可以取出来的。

感谢你的鼓励,其实我是精华版的斑竹了,呵呵,这是一个大家学习讨论的好地方,一起提高自己的技术吧,谢谢:)
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2008-9-28 14:42:26 | 只看该作者
Error_massage=Browser("Browser").Dialog("Microsoft Internet Explorer").Static("gogo").GetROProperty("text")
"gogo"文本变化后  依旧可以取得
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2008-10-10 11:14:15 | 只看该作者
还有一种方式,完全是自动匹配,不用添加对象的方式哈:
Set oDescDialog = Description.Create()
oDescDialog("micclass").Value = "Dialog"
       
Set oStaticDesc = Description.Create()
oStaticDesc("micclass").Value = "Static"
Set oDialog= Browser(Browser).Dialog(oDescDialog)
Set All_Static = oDialog.ChildObjects(oStaticDesc)
'        判断弹出窗口中,是否存在静态文件对象
If   All_Static.Count  = 0 Then
     oDialog.Close                               
End If
'获取具体的出错错误信息

For iOBjNum = 0 To All_Static.Count - 1
        If  All_Static(iOBjNum).GetROProperty( "Text" ) <> "" Then
                sErrMessage = All_Static(iOBjNum).GetROProperty( "Text" )
        End If
Next
If  Instr(1, sErrMessage, vblf, 1)  > 0 Then
        sErrMessage = Replace(sErrMessage, vblf, "->")
End If
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2010-8-5 14:12:07 | 只看该作者

我的不成功

我把上面的方法都试了,但是没有成功,还提示错误
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2010-8-5 14:19:55 | 只看该作者
我只是做了两个测试用例,都用参数写在本地工作表里了,一个是用户名是错误的情况,一个是正确的,然后我在工作表里定义了一个status字段,保存“用户名不存在”内容,我想做的测试是通过获取alert提示内容和status得内容比较,得出是不是bug,如果两个变量值一样那就不是bug.但是我上面的方法都试了,还是不行,还提示username错误。代码如下
Dim i
Dim outputvalue
Dim outstatus
For i=1 to datatable.GetSheet("Action1").GetRowCount



Browser("企业邮局").Page("企业邮局").WebEdit("username").Set DataTable("username", dtLocalSheet)
Browser("企业邮局").Page("企业邮局").WebEdit("password").SetSecure DataTable("password", dtLocalSheet)
Browser("企业邮局").Page("企业邮局").WebButton("登  录").Click

'outputvalue=Browser("企业邮局").Dialog("Microsoft Internet Explorer").Static("请输入你的用户名!").GetROProperty("请输入你的用户名!")  
outputvalue=Browser("Browser").Dialog("Microsoft Internet Explorer").Static("用户名不存在").GetROProperty("text")

outstatus=datatable("status",dtlocalsheet)

If  outputvalue<>outstatus Then
        reporter.ReportEvent 1," 登陆功能测试","预期输出:"+outstatus+",实际输入"+outputvalue
End If
datatable.GetSheet("Action1").SetNextRow
Next

Browser("企业邮局").Page("企业邮局_2").Link("退出").Click
Browser("企业邮局").Page("企业邮局").Sync
Browser("企业邮局").CloseAllTabs
希望前辈们给看看,看看到底怎么获取alert的内容,并且这都是变化的,因为每次alert的提示都不一样。。。。
再次感谢
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2010-11-4 09:57:29 | 只看该作者
能把QTP9.0的安装包发给我不?我的邮箱253773303@qq.com
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2012-5-9 10:49:44 | 只看该作者
多谢!我也受益很多
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2012-5-9 10:50:25 | 只看该作者
多谢!我也受益很多
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-8 12:30 , Processed in 0.073776 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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