zoukankan      html  css  js  c++  java
  • 021QTP之焦点(多思考)

    一、什么是焦点:

    焦点说白了就是你打开某一个程序时默认的focuse

    比如我们那QTP自带的windows下的示例程序来说,启动它后焦点自动落在了agent name文本框上

    二、利用Tab键检查焦点:

    可以利用键盘上的Tab键来设置焦点的位置;

    以示例程序来说,焦点开始在agent name上,按一下Tab,则跳到了pawword上在按一下Tab则到了OK上

    三、下面我们写代码来验证一下:

    'Dialog("Login").WinEdit("Agent Name:").Set "Mercury"
    'Dialog("Login").WinEdit("Password:").SetSecure "5456e5ada0731880d740ab67603518591e1d3520"
    'Dialog("Login").WinButton("OK").Click
    'Window("Flight Reservation").Close


    '检查控件的focused属性的函数
    Public Function CheckFocus(TestObject)
        If TestObject.CheckProperty("focused","false",2) Then
        CheckFocus=True
        else
        CheckFocus=false
        End If
    End Function

    'tab按键的键值
    Const VK_TAB=15
    '创建DeviceRepaly对象
    Set DeviceReplay=CreateObject("Mercury.DeviceReplay")
    '创建Dictionary对象
    Set dic=CreateObject("Scripting.Dictionary")

    '添加Dictionary的key和valuse,把顺序作为key,控件对象作为value
    dic.add"1",Dialog("Login").WinEdit("Agent Name:")
    dic.add"2",Dialog("Login").WinEdit("Password:")
    dic.add"3",dialog("Login").WinButton("OK")

    '定位到程序窗口,并判断窗口中的默认焦点是否在正确的位置
    Dialog("Login").Activate
    CheckFocus(dic.item("1"))

    For i = 2 To dic.count
      DeviceReplay.PressKey VK_TAB
      If CheckFocus(dic.item((CStr(i)))) Then
          Exit for
      'Else
       'msgbox"焦点正确"
      End If
    Next

    调试报错:

    (1)对象不存在

    (2)解决方法:

    增加对象:Resources - Object Respository Manager - Object - Add object 

    对象导入到Toolbox中

  • 相关阅读:
    BZOJ 1096: [ZJOI2007]仓库建设
    【BZOJ1008】越狱(排列组合计数,容斥原理)
    【BZOJ1403】Divisibility Testing(数论)
    【BZOJ1225】求正整数(数论)
    高精度模板(From JCVB)
    【NOIP模拟&POJ2152】灰色的果实(树形DP)
    【BZOJ2560】串珠子(状压DP,容斥原理)
    【POJ1185】炮兵阵地(状压DP)
    【POJ3254】Corn Fields(状压DP)
    【POJ3311】Hie with the Pie(状压DP,最短路)
  • 原文地址:https://www.cnblogs.com/jiangkeji/p/4070762.html
Copyright © 2011-2022 走看看