(转)在QTP中web弹出框与描述性编程

上一篇 / 下一篇  2014-01-06 15:41:25 / 个人分类:QTP自动化测试相关

讲解的不够简介流畅,不过意思还是领会了

 
web弹出框与描述性编程的那些事

  此乃小弟初学QTP的愚见,望各位大大多多指教。

  在web应用程序中,有许多验证点是与弹出框提示相关的,如下面的这个例子:

  页面只有两个输入框A、B,两者都有输入范围,超过输入范围点“保存”就有相应的弹出对话框提示,于是有以下三个反例:

  1、 只有输入框A超过输入范围,点“保存”出现“输入框A超过输入范围”

  2、 只有输入框B超过输入范围,点“保存”出现“输入框B超过输入范围”

  3、输入框A和输入框B都超过范围,点“保存”出现“输入框A超过输入范围”

  于是我们需要验证弹出框是否出现且与预期提示内容是否一致:

  验证弹出框是否出现比较容易,将对话框加入对象库,用

  If Browser("xxx").Dialog("xxx").Exist Then ...来验证。

  但是验证对话框中的内容(也就是Static对象的text属性的值)时遇到了问题——这个系统只能有一个Static对象能加到对象库中,也就是说,我无法区分提示信息是“输入框A超过输入范围”还是“输入框B超过输入范围”。但是用描述性编程的方法就能解决这个问题。

  1、将Browser("xxx").Dialog("xxx")加入对象库

  2、然后用

  If Browser("xxx").Dialog("xxx").Static("Text:=输入框A超过输入范围").Exist

  Then ...

  或者

  If Browser("xxx").Dialog("xxx").Static("Text:=输入框B超过输入范围").Exist

  Then ...

  注:“:=”两边没有空格,有些人习惯在运算符两旁加上空格,但这里不行,这里是个字符    串,加了空格就识别不了,我就犯了这个错误。。。。。

  关于弹出对话框中属性的值

  为了研究关于弹出对话框中属性的值,我写了个例子,

  htm代码如下:

  <HTML>

  <HEAD>

  <TITLE>测试按钮事件

  </TITLE>

  </HEAD>

  <BODY>

  <FORM. NAME="Form1">

  <INPUT TYPE="Button" NAME="Button1" VALUE="单击">

  <SCRIPT. FOR="Button1" EVENT="onClick" LANGUAGE="VBScript">

  MsgBox "按钮被单击1"

  MsgBox "按钮被单击2"

  MsgBox "按钮被单击3"

  </SCRIPT>

  </FORM>

  </BODY>

  </HTML>

  ****************************************************************************

  qtp代码如下:

  Dim str1,str2

  Browser("测试按钮事件").Sync

  Browser("测试按钮事件").Page("测试按钮事件").WebButton("单击").Click

  If Browser("测试按钮事件").Dialog("VBScript").Exist Then

  str1 = Browser("测试按钮事件").Dialog("VBScript").Static("按钮被单击1").GetTOProperty("Text")

  'AAA

  Reporter.ReportEvent micPass,"TO文本内容",str1

  Browser("测试按钮事件").Dialog("VBScript").WinButton("确定").Click

  End If

  If Browser("测试按钮事件").Dialog("VBScript").Static("Text:=按钮被单击2").Exist

  ' BBB

  Then

  Browser("测试按钮事件").Dialog("VBScript").WinButton("Text:=确定").Click

  Reporter.ReportEvent micPass,"描述编程的操作","成功"

  End If

  If Browser("测试按钮事件").Dialog("VBScript").Static("window id:=65535").Exist Then

  str2 = Browser("测试按钮事件").Dialog("VBScript").Static("window id:=65535").GetROProperty("Text")

  'CCC

  Browser("测试按钮事件").Dialog("VBScript").WinButton("Text:=确定").Click

  Reporter.ReportEvent micPass,"描述编程的取值",str2

  End If

  AAA处,我将Browser("测试按钮事件").Dialog("VBScript").Static("按钮被单击1")加入对象库,

  因此,可以用TO方法来获取"Text"的属性值,但无法使用RO方法,因为此对象无法获取RO属性。

  BBB处,则是验证描述性编程能否成功

  CCC处,这是很关键的一步,因为这里,我通过描述性编程,使用RO方法获取当前Static的Text的属性值

  附带qtp代码和html代码,使用方法,用ie打开html文件(允许加载脚本),再打开QTP,

  在Record and run选项中选择 “Record and runteston any open browser”


TAG:

 

评分:0

我来说两句

Open Toolbar