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
  • 相关阅读:
    hdu 1532(最大流)
    星沉月朗
    uva 818 (位运算 + 判环)
    SQL变量、Substring、charindex、case函数、去除重复
    C# Tostring格式
    asp.net导出word(word2007)
    asp.net生成缩略图
    正则表达式语法
    解压缩
    文件复制
  • 原文地址:https://www.cnblogs.com/hgfg331/p/3412589.html
Copyright © 2011-2022 走看看