zoukankan      html  css  js  c++  java
  • FireEvent结合WSH实现右键菜单操作

       在qtp自动化测试过程中某些时候可能需要对某个对象进行右键操作,选择右键菜单中的菜单项,但是qtp中没有封装相应的选择右键菜单的方法,此时我们可以使用对象支持的FireEvent方法实现右键点击操作,然后结合wsh的sendkeys模拟键盘的上、下、左、右方向键及回车键实现对菜单的项的选择。
    注意:在使用以上方法时,qtp回放模式需要设置为Mouse模式,具体的设置位置:Tools>Options>Web>advanced>Run Setting>Replay Type
     
    以下代码是封装的一个鼠标操作类,将其保存为vbs文件即可(本文保存为MouseOperationClass.vbs,保存于的D:),提供了以下方法:
    1.使用该类时自动设置qtp的回放模式为mouse模式,结束使用该类后自动设置qtp回放模式为event模式
    2.提供右键点击操作方法
    3.提示模拟按键盘上、下、左、右及回车键的方法

    '###############################################################
    '***************************************************************
    '功能:右键点击对象及右键菜单选择
    '参数:ojb - 支持FireEvent方法的对象;
    '     moveTime - 需要按某个方向键的次数
    '***************************************************************
    Class MouseOperation
       Dim obj
       Dim moveTime
     '设置qtp回放模式为鼠标操作模式
     Private Sub Class_Initialize  
          Setting.WebPackage("ReplayType") = 2
     End Sub
     '设置qtp回放模式为浏览器事件模式
       Private Sub Class_Terminate  
     Setting.WebPackage("ReplayType") = 1
       End Sub
     '在对象上点击鼠标右键
     Sub ClickRightKey(obj)
         obj.FireEvent "onclick",,,micRightBtn
     End Sub
     '在右键菜单上鼠标向上移动选择菜单项
       Sub moveUp(moveTime)
      Set bjWSH = CreateObject("Wscript.Shell")
      For i=0 To moveTime
       objWSH.SendKeys "{UP}"
       'Wait 1
      Next
      Set bjWSH = Nothing
      End Sub
     '在右键菜单上鼠标向下移动选择菜单项
       Sub moveDown(moveTime)
      Set bjWSH = CreateObject("Wscript.Shell")
      For i=1 To moveTime
       objWSH.SendKeys "{DOWN}"
       'Wait 1
      Next
      Set bjWSH = Nothing
      End Sub
     '在右键菜单上鼠标向左移动选择菜单项
       Sub moveLeft(moveTime)
      Set bjWSH = CreateObject("Wscript.Shell")
      For i=1 To moveTime
       objWSH.SendKeys "{LEFT}"
       'Wait 1
      Next
      Set bjWSH = Nothing
      End Sub
     '在右键菜单上鼠标向右移动选择菜单项
         Sub moveRight(moveTime)
      Set bjWSH = CreateObject("Wscript.Shell")
      For i=1 To moveTime
       objWSH.SendKeys "{RIGHT}"
       'Wait 1
      Next
      Set bjWSH = Nothing
      End Sub
     '选择右键菜单项
     Sub Choose()
      Set bjWSH = CreateObject("Wscript.Shell")
       objWSH.SendKeys "{ENTER}"
       'Wait 1
      Set bjWSH = Nothing
     End Sub
    End Class
     
    '############################例子############################
    以下是一个实例:
    测试功能需求:
    1.打开百度首页
    2.在百度首页"图片"链接上点击鼠标右键
    3.选择右键菜单中"所有加速器"下的"管理加载项..."菜单
     
    脚本设置思路:
    1.调用外部的鼠标操作类
    2.调用鼠标操作类的点击右键方法ClickRightKey
    3.调用鼠标操作类的按键盘向下方向键方法moveDown,按13次定位到菜单项"所有加速器"
    4.调用鼠标操作类的按键盘向右方向键方法moveRight,按1次展开"所有加速器"子菜单
    5.调用鼠标操作类的按键盘向下方向键方法moveRight,按4次定位到子菜单中的"管理加载项..."菜单
    6.调用鼠标操作类的按键盘回车键方法choose,选择"管理加载项..."菜单
     
    以下是qtp代码:
    '加载外部鼠标操作类
    executefile "d:MouseOperationClass.vbs"
    '关闭ie浏览器
    Systemutil.CloseProcessByName "iexplore.exe"
    '打开百度首页
    Systemutil.Run "www.baidu.com"
    set bj = Browser("name:=百度一下,你就知道").Page("title:=百度一下,你就知道").Link("html tag:=A","name:=图片")
    Set Mouse =  New MouseOperation
    Mouse.ClickRightKey(obj) '在百度首页“图片”链接上点击右键
    Mouse.moveDown(13) '选择右键菜单中的"所有加速器"
    Mouse.moveRight(1) '展开"所有加速器"子菜单
    Mouse.moveDown(4)  '选择"管理加速器..."
    Mouse.Choose '选择"所有加速器"子菜单中的"使用"
    Set Mouse = Nothing
  • 相关阅读:
    Linux下安装配置词典GoldenDict
    ubuntu 安装LaTex
    ubuntu 安装Opencv2.4.7
    Ubuntu 安装Matlab2010a
    Ubuntu 挂载ISO文件的方法
    ubuntu安装Java jdk1.7.0
    VDI转vmdk(VirtualBox与VMware硬盘格式转换)[转]
    oracle忘记密码,修改密码,解锁
    SQL Server 2008中文企业版下载地址和序列号[转]
    HTTP 错误 500.19 – Internal Server Error web.config 文件的 system.webServer/httpErrors 节中不允许绝对物理路径“C:inetpubcusterr”[转]
  • 原文地址:https://www.cnblogs.com/hgfg331/p/3412589.html
Copyright © 2011-2022 走看看