QTP检查浮动Tips

上一篇 / 下一篇  2013-06-21 14:40:46 / 个人分类:QTP自动化笔记

   我们在测试的过程中,可能会遇到这样的情况,存在一个链接标题,当鼠标置于链接标题上时,会弹出浮动的提示框(Tips).qtp处理这种情况时,可以采用以下方式检查弹出的tips
1.由于需要模拟鼠标移动至链接上的操作,所以我们首先要将qtp的回放模式(Replay Type)设置为鼠标追踪模式(Mouse)
  有两种方式可以设置:
  (1)手动设置:在qtp>Tools>Options>Web>Advanced>Run settings>Replay type选择Mouse
  (2)动态设置:使用qtp的Setting 对象进行设置,方法:Setting.WebPackage("ReplayType")=2
              注:1-Event 模式;2-Mouse 模式
2.设置好回放模式为鼠标追踪模式(Mouse)后,调用Fireevent方法,使用"onmouseover"模拟鼠标移动到链接上的操作
  Browser("aaa").Page("bbb").Link("ccc").FireEvent "onmouseover"
3.判断是否出现鼠标置于链接名称上时是否弹出浮动tips
    由于浮动的tips,不是标准的web控件,属于Window类型控件.那么我们如何通过SPY去查看tips的nativeclass到底是什么呢?由于浮动tips鼠标移开标题即会消失,所以这个在捕获的时候,要眼疾手快.
  方法:(1)打开spy,点击对象定位按钮(手指图标);
      (2)按住Ctrl键,将鼠标置于标题上;
      (3)快速的释放Ctrl键,在tip为消失前,定位tips,多试几次,直到获取到的bowser下的子对象为window对象
  由于一般情况下tips的nativeclass属性值为toolTips_class32,为了减少添加对象不方便的麻烦,所以判断tips的时候不采用对象库编程,而采用描述性编程,用nativeclass属性去描述
  TipsWindow = Window("nativeclass:=toolTips_class32").Exist(3)
 
以下是封装的一个检查浮动提示框的的函数:
'*******************************************************
'功能:检查鼠标置于标题上时是否浮动提示框(Tips),
'     且浮动提示是否正确
'参数:objTips - 需要检查的对象
'     TipsConten  - 浮动显示框的文字内容,若参数("")为空,表示不浮动显示文字
'返回值:True - 布尔值,表示检查通过
'       False - 布尔值,表示检查失败
'调用方法: Set bjTips = borowser("xxx").page("xx").Link("xxx")
'          RET = CheckFloatTips(objTips,"xxxxx")
'作者:虎肖至尊
'日期:2013-06-21
'******************************************************
Function CheckFloatTips(objTips,TipsConten)
 '获取qtp当前的回放模式
 GetRepalayType = Setting.WebPackage("ReplayType")
 '检查objTips对象是否存在
 If  objTips.Exist(30) Then
  Reporter.ReportEvent micPass,"检查["& objTips.ToString & "]对象是否存在","存在"
  If  GetRepalayType = 2 Then
   '模拟移动鼠标至链接上的操作
   objTips.FireEvent "onmouseover"
  Else
   '修改qtp回放模式为鼠标跟踪模式(Mouse)
   Setting.WebPackage("ReplayType") = 2
   objTips.FireEvent "onmouseover"
  End If
  '检查是否存在浮动Tips窗口
  Ret_ExistTips = Window("nativeclass:=toolTips_class32").Exist(3)
  If  Ret_ExistTips Then
   '浮动Tips窗口存在
   CheckFloatTips = True
   Reporter.ReportEvent micPass,"检查是否存在浮动框","存在"
   '判短是否需要检查浮动Tips窗口内容,不为空则需要检查,否则不检查
   If TipsConten <> "" Then
    '或者运行时浮动Tips窗口的内容
    GetTipsText = Window("nativeclass:=toolTips_class32").GetROProperty("text")
    '判断浮动Tips窗口的内容是否与预期结果一直
    If  Trim(GetTipsText) = Trim(TipsConten)Then
     '运行时浮动Tips窗口的内容与预期结果一直,返回Ture
     CheckFloatTips = True
     Reporter.ReportEvent micPass,"检查浮动框文本是否正确","文本正确,文本为:" & GetTipsText
    Else
     '运行时浮动Tips窗口的内容与预期结果不一直,返回False
     CheckFloatTips = False
     Reporter.ReportEvent micFail,"检查浮动框文本是否正确","文本不正确,预期结果为:" &_
     TipsConten &";实际结果为:"&GetTipsText
    End If
   End If
  Else
   '浮动Tips窗口不存在,返回False
   CheckFloatTips = False
   Reporter.ReportEvent micFail,"检查是否存在浮动框","不存在"
  End If
  '还原qtp回放模式
  Setting.WebPackage("ReplayType") = GetRepalayType
 Else
  'objTips对象不存在,返回False
  CheckFloatTips = False
  Reporter.ReportEvent micFail,"检查["& objTips.ToString & "]对象是否存在","不存在"
 End If
End Function
 
实例:
1.打开http://mail.163.com/
2.鼠标置于密码输入框上,检查是否有"请输入密码"的tips弹出
代码:
'打开打开http://mail.163.com/
Systemutil.Run "iexplore.exe","http://mail.163.com/"
Set pwd_WebEdit =Browser("title:=163网易免费邮--中文邮箱第一品牌").Page("title:=163网易免费邮--中文邮箱第一品牌").WebEdit("name:=password")
'调用CheckFloatTips函数检查tips
Ret = CheckFloatTips(pwd_WebEdit,"请输入密码")
Msgbox Ret

TAG: QTP qtp tips

 

评分:0

我来说两句

Open Toolbar