sky-vid 发表于 2007-3-21 12:15:18

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

图片如下,该对话框是由脚本弹出的
在8。2中可以用obj.getVisible()函数得到该对话框中所有的文本信息(包括标题和按钮的text)
现在升级到QTP9.0后,这个函数去掉了,不能用
我用SPY查看 ,其中的文本信息为 Static类型
根本就取不到这个信息
大家帮帮忙看看



注:
大家也可以用下面的脚本用QTP试试看
<html>
<body>
<script language=javascript>
alert("gogo");
</script>
<body>
</html>
把这段脚本放在一个文本文件里,然后将该文件后缀改为html 然后双击就得到一个弹出对话框了

风过无息 发表于 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

sky-vid 发表于 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 编辑 ]

风过无息 发表于 2007-3-21 18:14:50

我刚才试了一下,用output文本变化的还是可以取出来的。

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

helius 发表于 2008-9-28 14:42:26

Error_massage=Browser("Browser").Dialog("Microsoft Internet Explorer").Static("gogo").GetROProperty("text")
"gogo"文本变化后依旧可以取得

erwinsun 发表于 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
        IfAll_Static(iOBjNum).GetROProperty( "Text" ) <> "" Then
                sErrMessage = All_Static(iOBjNum).GetROProperty( "Text" )
        End If
Next
IfInstr(1, sErrMessage, vblf, 1)> 0 Then
        sErrMessage = Replace(sErrMessage, vblf, "->")
End If

xiaowu_627 发表于 2010-8-5 14:12:07

我的不成功

我把上面的方法都试了,但是没有成功,还提示错误

xiaowu_627 发表于 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)

Ifoutputvalue<>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的提示都不一样。。。。
再次感谢

wujiujiang 发表于 2010-11-4 09:57:29

能把QTP9.0的安装包发给我不?我的邮箱253773303@qq.com

woddebbmm 发表于 2012-5-9 10:49:44

多谢!我也受益很多

woddebbmm 发表于 2012-5-9 10:50:25

多谢!我也受益很多
页: [1]
查看完整版本: 如何在QTP9.0中获取用alert 弹出的对话框信息?