51Testing软件测试论坛

标题: 急急急!!!怎样捕捉这种提示信息呢? [打印本页]

作者: zhengpeipei    时间: 2009-11-5 10:11
标题: 急急急!!!怎样捕捉这种提示信息呢?
在录制一个C/S系统时,它的提示信息实在界面下方给出的,并且是一闪一现的。用SPY查看得到这是一个WinObject对象,我用
Window("XXX").WinObject("SWT_Window0").GetROProperty("text")
这句代码来捕捉却不行。请各位高手指点一下,这个提示信息该怎样捕获到呢?

我是了一下这个方法:
Dim Text
Text=Window("XXX").WinObject("SWT_Window0").GetVisibleText()
if Text<>"保存成功" then
    Reporter.ReportEvent micFail,"保存失败","保存失败!"
else        
    Reporter.ReportEvent micPass,"保存成功","保存成功!"

回放结果显示为下图所示:


其它的步骤全部都执行了,只是到这个判断这里才有错。这是什么原因呢?
注:我用了一下插入位图检查点的方法,可以通过,但是因为这里的提示信息有多种,怎样才能考虑到每一种情况呢?难道需要每个提示信息都插入一个位图检查点吗?

[ 本帖最后由 zhengpeipei 于 2009-11-11 16:16 编辑 ]
作者: garyyes    时间: 2009-11-5 10:47
标题: 回复 1# 的帖子
来捕捉却不行,——不行的现象能说具体一点吗?
看你的截图,那个对象当前的text属性就是空值。

[ 本帖最后由 garyyes 于 2009-11-5 10:51 编辑 ]
作者: zhengpeipei    时间: 2009-11-5 11:01
标题: 回复 2# 的帖子
就是因为当前的text属性是空值,所以我不知道这个提示信息的内容具体是什么属性。
作者: garyyes    时间: 2009-11-5 11:08
标题: 回复 3# 的帖子
很明显,你不能用它的text属性作为验证点了。(或者你取错了对象,或者那个对象的“保存成功”不能通过这种方法获取)
实在不行的话,就要变通一下,看看是不是取其它属性可行,或者以其它对象的属性作为验证点。
由于没有实际应用让我尝试解决,所以也只能提供一些解决问题的思路了。
作者: 风过无息    时间: 2009-11-5 11:50
1、尝试用OCR的办法
2、位图比较
3、找别的办法验证这个功能,
作者: testlab    时间: 2009-11-5 12:31
先用childobjects看看你所获取的对象下面是否还有子对象
作者: zhengpeipei    时间: 2009-11-9 11:05
标题: 回复楼上的帖子
怎样看它是否还有子对象呢,用spy查看其属性中没有childobjects这一项啊?
作者: zhengpeipei    时间: 2009-11-9 11:09
标题: 回复5#的帖子
我是了一下这个方法:
Dim Text
Text=Window("XXX").WinObject("SWT_Window0").GetVisibleText()
if Text<>"保存成功" then
    Reporter.ReportEvent micFail,"保存失败","保存失败!"
else        
    Reporter.ReportEvent micPass,"保存成功","保存成功!"

回放结果显示为下图所示:
[attach]57375[/attach]
其它的步骤全部都执行了,只是到这个判断这里才有错。这是什么原因呢?
注:我用了一下插入位图检查点的方法,可以通过,但是因为这里的提示信息有多种,怎样才能考虑到每一种情况呢?难道需要每个提示信息都插入一个位图检查点吗?

[ 本帖最后由 zhengpeipei 于 2009-11-10 18:52 编辑 ]
作者: zhengpeipei    时间: 2009-11-10 19:06
各位高手请指点一下!!!
作者: shanxi    时间: 2009-11-10 20:23
swt_window 是java框架SWT: The Standard Widget Toolkit

一开始看好像MFC

你1楼贴的text属性根本没值啊!

[ 本帖最后由 shanxi 于 2009-11-10 20:25 编辑 ]
作者: zhengpeipei    时间: 2009-11-11 16:18
标题: 回复10#的帖子
像这样的问题该怎样解决呢?
这个问题一直困扰着我。
作者: zhengpeipei    时间: 2009-11-11 17:31
up!!!
作者: zhengpeipei    时间: 2009-11-11 17:52
各位大侠指点一下啊!!!
作者: zhengpeipei    时间: 2009-11-12 09:41
标题: 别下沉
别下沉
作者: zhengpeipei    时间: 2009-11-12 12:13
这么多朋友看了,可以给点建议吗?
作者: lijinshui    时间: 2009-11-12 13:28
不知道你问题解决了没有
如果失败的情况下,提示信息在那里给出的?
如果只是在成功的时候,提示信息才在界面下方给出的,你可以通过位图来判断一下是否有变化,一闪一现的话,也没有关系,用while循环,多等几秒钟,在这几秒钟内一直判断
就怕你保存失败的时候,也是在界面下方给出的就麻烦了
作者: lijinshui    时间: 2009-11-12 13:32
另外还可以判断这个标签的状态阿,可能是在保存成功的时候这个位图才可见,平时不可见的话你可以直接判断是否可见的属性
3
这个标签text平时是空值,在保存成功的时候其值才是“保存成功”,这样的话,你可以用循环来等不等于空的时候来处理
作者: zhengpeipei    时间: 2009-11-12 13:58
标题: 回复lijinshui的帖子
不幸被你言重了,保存失败的时候(必填项为空等情况)也在那里提示!!!!!!
作者: linhd030    时间: 2009-11-12 15:33
有时候QTP的内存满了,或是IE的Coolies满了,spy抓取对象显示的信息和楼主给出的图一样
作者: zhengpeipei    时间: 2009-11-12 19:09
标题: 回复19楼的帖子
我录制的是C/S版本,QTP的内存在什么地方啊?
作者: zhengpeipei    时间: 2009-11-13 09:21
别下沉啊,问题一直没有得到解决!
作者: zhengpeipei    时间: 2009-11-13 13:42
UP UP UP !!!
作者: zhengpeipei    时间: 2009-11-13 13:46
难道这个问题无法解决吗?
作者: zchtest    时间: 2009-11-13 15:55
标题: 比较属性的变化
你要用Spy试一下保存成功和保存失败时,有哪个属性值是变化的,然后用这个属性值来判断结果。另外我觉得你可以尝试找一下其它对象来判断,成功和失败,也许并不一定要用这个提示信息来判断,也许界面会不同,或者其它的东西发生了变化。然后用这个变化的对象来判断。不吊死在一棵树上嘛
作者: june.diny    时间: 2009-11-16 16:45
支持下24#
不过,lz说的这种对象的捕获该如何获取呢,希望高手指教下
up....
作者: zhengpeipei    时间: 2009-11-18 17:25
标题: 同意楼上的观点
同意楼上的观点,如何捕获呢?
作者: jimmyzhou    时间: 2009-11-19 18:09
没仔细看你要捕捉什么,不过看代码好像字符串不能用<>做比较,试试用strcomp(TEXT,“xxx”) = 0
作者: zhengpeipei    时间: 2009-11-24 11:24
标题: 别下沉
最好的办法就是识别这个提示信息,若使用位图检查点测试很麻烦,需要将每种提示信息都做一个检查点。
作者: 小孩    时间: 2010-1-6 19:35
你可以试一下, 用SPY去看一下 保存成功 、保存失败 和 未保存之前那个控件的属性。
如果有区别 就判断一下 这个控件是否存在就行了!

如下面
Dim Text
Text=Window(&quot;XXX&quot;).WinObject(&quot;SWT_Window0&quot;).exist(10)
if Text then
    Reporter.ReportEvent micFail,&quot;保存失败&quot;,&quot;保存失败!&quot;
else        
    Reporter.ReportEvent micPass,&quot;保存成功&quot;,&quot;保存成功!&quot;

很久没用QTP 希望没误导你 O(∩_∩)O哈哈~
作者: onlonely    时间: 2010-1-7 10:08
我来说说我的看法吧,
1,我认为楼主,使用SPY的对象已经错误了
,你应该SPY那个保存成功对象,不应该spy左边那个盒子一样的东西(当然那个"保存成功"如果是图片就算我没说这句话)
2,如果需要检查这样的不是"所有时间存在"的对象,比较稳妥的方法是使用循环,监视对象,在多少多少时间不出现为失败.
作者: liuxl    时间: 2010-1-7 12:59
用textarea检查点行不行呢?
作者: liuxl    时间: 2010-1-7 13:02
如果提示内容闪烁,你可以试着写个循环,多做几次这里的检查,知道捕捉到提示内容不为空为止
作者: liujinkui    时间: 2010-1-7 15:04
标题: 我的理解是 保存成功 是预期值
'在楼主的基础上加上“水”的提议:

Dim Text
For I = 1 To 10
  Text=Window("XXX").WinObject("SWT_Window0").GetROProperty("text")
  If Text =="" then
           wait(3)
  ElseIf Text=="保存成功" then
           Reporter.ReportEvent micPass,"保存成功","保存成功!"
           Exit for
  Else
            Reporter.ReportEvent micFail,"保存失败","保存失败!"
  End If
  If I=10 Then
        Reporter.ReportEvent micFail,"保存失败","保存失败!"
  End If
Next




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