51Testing软件测试论坛

标题: 如何取得dialog中的文本 [打印本页]

作者: lileo    时间: 2007-1-25 17:28
标题: 如何取得dialog中的文本
各位大虾好!我有一问题请教!

我用QTP9.0录制了一个Action,随后我加了一些判断语句在专家视图中,代码如下:

If  Browser("Browser").Dialog("Microsoft Internet Explorer").Exist Then
        error_message = Browser("Browser").Dialog("Microsoft Internet Explorer").Static("Error code:").GetROProperty("text")
        MsgBox(error_message)
Else
        Reporter.ReportEvent micFail,"Failed","error dialog don't show!"
End If

可是在取对话框的静态文本时,qtp告诉我Static这个对象不能识别,就是说名字叫"Error code"这个Static的对象没办法识别!随后我在object Repository中,确实没有看到这个名字叫"Error code"的这个Static对象,只有那个dialog对象和一个名字叫"确定"winbutton对象。接下来我就add object,也没有办法把它加入到object responsitory.

这个名字"Error code"是我自以为是的名字,也就是我自己给它起的名字。

这个dialog在html中的语句如下:
alert('Error code: 0x' + parseInt(result.errorCode).toString(16) + '\nError message:'+result.errorMessage);
其中result是一个包含错误码和错误信息的对象!


dialog的图在附件中,请大虾们原谅,我不知道怎么插入图片,所以只能上传为文件了。

请大虾们帮帮我,我该怎么做!
作者: lileo    时间: 2007-1-25 17:30
我的实际目的是取得"Error code: 0x90003010 Error Message:[DISCOVERY]The disocvery range....."这样一个字符串
作者: xiaonan    时间: 2007-1-25 17:45
在active screen里右击文本add对象看看,它是怎样一个对象
作者: hyhbeyond    时间: 2007-1-25 17:48
error_message = Browser("Browser").Dialog("Microsoft Internet Explorer").getviable Text()
就可以了

[ 本帖最后由 hyhbeyond 于 2007-1-25 17:50 编辑 ]
作者: lileo    时间: 2007-1-25 17:51
太谢谢xiaonan了!真是一语惊醒梦中人啊!原来我也在active screen中右击鼠标,随后add对象,但是我右击在dialog上,没有右击在文本上。所以一定要在文本上右击!

再次感谢xiaonan!
作者: lileo    时间: 2007-1-25 17:56
Browser("Browser").Dialog("Microsoft Internet Explorer").getviable Text()
这个Api: getviable Text()
不行啊!说不支持这个api,我在帮助中也没有找到这个api
作者: hyhbeyond    时间: 2007-1-25 19:33
GetVisibleText() 注意大小写~~应该没问题的。我一直用这种方法
作者: lileo    时间: 2007-1-26 14:21
我试了一下可以了的,不过呢没有用static对象识别好,因为这个api返回的字符串包括dialog中所有的字符,甚至是“确定”这个两个字也包括,所以就算取得字符串也要花点力气去检索自己想要的。

不过还是要谢谢hyhbeyond!
还有一事请教,这个函数到底出自哪里?我在qtp中没有检索到!
作者: vprince    时间: 2007-1-26 15:46
标题:
有啊,仔细找找,QTP的VBSript中
作者: lileo    时间: 2007-1-26 16:43
我找了呀,确实没有找到,我是在GeneralHelp.chm中搜索的,也没有啊,随后我又在安装qtp的目录中,搜索所有包含“GetVisibleText”的文件,只有在readme.html中找到,但是只是引用了一下,没有详细介绍啊!

有谁能告诉我在那个文件中可以找到!
作者: roadpeople    时间: 2007-5-8 17:50
刚好我也遇到楼主同样的问题,看了各位的解答问题解决了,谢谢各位
作者: hehemeimei    时间: 2007-5-9 16:25
装上.net插件后就能在帮助文档中找到GetVisibleText了。sdlkfj5
作者: mldyt0229    时间: 2007-5-10 09:14
标题: 回复
呵呵,以前也遇到过类似的问题。虽然解决了,但是看看hyhbeyond的解决方法觉得很方便简洁,比我的方法通用性更好,谢谢了!
作者: rivermen    时间: 2007-5-10 09:42
原来还有那么多的好东东,今天又长知识了
作者: jiangdanyang    时间: 2007-8-22 14:23
楼主我还是不太明白static的用法
还有就是用static是不是出现不同的dialog时,都要手动添加到对象库.如果是的话那第一遍录制时该怎么办?而GetVisibleText不存在上述问题.
本人初学QTP,请楼主详细讲一下行吗?谢谢




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