发布新日志

  • QTP中使用internetexplorer.application对象访问剪贴板

    2008-08-30 14:00:35

    Browser("软酷.人力资源引擎").Page("项目经理管理平台 - 软酷.人力资源引擎").Frame("mainRight_3").Image("an_houqu_copy").Click  '点击图片为复制操作

    Set ie=createobject("internetexplorer.application")
    ie.navigate "about:blank"
    ie.visible=False
    str=ie.document.parentwindow.clipboarddata.getdata("text")
    MsgBox (str)
  • QTP中错误处理(大林版)

    2008-08-29 16:32:59

    On error resume next

    datatable.GlobalSheet.DeleteParameter "num" '实际Global表中没有num这个字段,运行时会报错.

    If err.number <> 0 Then
     createlog "C:\error.txt","Error",err.descrīption
    End If

    Function createlog(filepath,logtype,logdetail)

    '该脚本用于输出LOG

    FilePath = filepath  'LOG文件的路径
    LOGType = logtype  'LOG的类型
    LOGDetail = logdetail  'LOG的内容

    Set fso = CreateObject("scrīpting.FileSystemObject")

    '判断LOG文件是否存在,如不存在,则按指定路径新建

    If fso.FileExists(FilePath) = False  Then

              Set LOGFile = fso.CreateTextFile(FilePath, True)

              LOGFile.Close

    end if


            Set LOGFile = fso.OpenTextFile(FilePath, 8, True)  '8为追加

            LOGFile.WriteLine("")

            LOGFile.WriteLine(" ---------------------------------------------------------")

      LOGFile.WriteLine(" Time:" & Cstr(Now))

            LOGFile.WriteLine(" Type:" & LOGType )

            LOGFile.WriteLine(" Detail:" & LOGDetail)

            LOGFile.Close

      Set LOGFile = nothing
      Set fso = nothing
    End Function

  • VBS错误处理

    2008-08-29 16:30:09

    引发错误的原因有很多,例如用户输入了错误类型的值,或者脚本找不到必需的文件、目录或者驱动器,我们可以使用循环技术来处理错误,但是VBS本身也提供了一些基本技术来进行错误的检测和处理。

    1、最常见的错误是运行时错误,也就是说错误在脚本正在运行的时候发生,是脚本试图进行非法操作的结果。例如数组下标越界。在vbs中,任何运行时错误都是致命的,此时,脚本将停止运行,并在屏幕上显示一个错误消息。你可以在脚本的开头添加

    On  Error Resume  Next 

    这行语句可以告诉vbs在运行时跳过发生错误的语句,紧接着执行跟在它后面的语句。

    发生错误时,该语句将会把相关的错误号、错误描述和相关源代码压入错误堆栈。

    2、虽然On Error ResumeNext语句可以防止vbs脚本在发生错误时停止运行,但是它并不能真正处理错误,要处理错误,你需要在脚本中增加一些语句,用来检查错误条件并在错误发生时处理它。

    vbscrīpt提供了一个对象err对象,他有两个方法clear,raise,5个属性:descrīption,helpcontext,helpfile,number,source

    err对象不用引用实例,可以直接使用,例如:

    On Error Resume next

    Dim Array(3)

    For i = 0 To 4
     Array(i) = i
     
     If Err.Number <> 0 Then
      MsgBox (Err.Number & Err.Descrīption & Err.Source)
      Exit For
     Else
      MsgBox (Array(i))
    End If

    Next

  • VBS启动QTP

    2008-08-28 09:52:15

    Set qtpapp = CreateObject("quicktest.application") '创建QTP应用程序的实例对象
    qtpapp.launch '启动QTP
    qtpapp.visible = True '让QTP可见
    qtpapp.open "F:\QTP_TestCase\Test" '打开相应脚本
    Set qtpapp = Nothing '释放QTP对象
  • 生成一个唯一的字符串

    2008-08-19 15:33:48

    Public Function onlynum()
    '此函数用于生成一个唯一的字符串
    onlynum = Join(Split(Date(),"-"),"") & Join(Split(Time(),":"),"")
    End Function
  • QTP读取Excel表中的值

    2008-08-18 14:34:07

    '此函数实现取得Excel表中某一单元格值的功能
    '4个参数的意义分别为:
    'filepath:Excel文件路径
    'sheetname:表名
    'rownum:行号
    'colnum:列号或列名
    '调用方法:getcell("c:\pp.xls","Sheet1",1,1)或getcell("c:\pp.xls","Sheet1",1,"A")

    Function getcell(filepath,sheetname,rownum,colnum)

    Set excobj = createobject("Excel.Application")
    Set excfile = excobj.workbooks.open(filepath)
    Set excsheet = excfile.worksheets(sheetname)

    getcell = excsheet.cells(rownum,colnum)

    End Function

  • VBSEdit工具无法运行解决方法

    2008-08-12 17:52:17

    如果运行时报"Cscrīpt 错误: 没有在该机执行 Windows 脚本宿主的权限。请与系统管理员联系。"此类错误,可以在“运行”中输入regedit打开注册表编辑器,找到[HKEY_LOCAL_MACHINE\SOFTWARE|Miscrosoft\Windows scrīpt Host\Setting],在右边窗口找到Enabled,将其值改为1即可。
  • VBS输出LOG到TXT

    2008-08-12 11:39:31

    '***************Information About scrīpt***************

              'Company: broadengate

              'Author: dalin

              'Product: ruanko

              'Date: 2008-8-12

    '******************************************************

    '调用函数

    Call createlog("C:\log.txt","Error","LOG的内容")

    '该脚本用于输出LOG

    Function createlog(filepath,logtype,logdetail)

    FilePath = filepath  'LOG文件的路径
    LOGType = logtype  'LOG的类型
    LOGDetail = logdetail  'LOG的内容

    Set fso = CreateObject("scrīpting.FileSystemObject")

    '判断LOG文件是否存在,如不存在,则按指定路径新建

    If fso.FileExists(FilePath) = False  Then

              Set LOGFile = fso.CreateTextFile(FilePath, True)

              LOGFile.Close

    end if


            Set LOGFile = fso.OpenTextFile(FilePath, 8, True)  '8为追加

            LOGFile.WriteLine("")

            LOGFile.WriteLine(" ---------------------------------------------------------")

      LOGFile.WriteLine(" Time:" & Cstr(Now))

            LOGFile.WriteLine(" Type:" & LOGType )

            LOGFile.WriteLine(" Detail:" & LOGDetail)

            LOGFile.Close

    End Function

  • QTP常用tips(大林版[2])

    2008-08-07 17:11:14

    1.新打开一个IE,网址为www.baidu.com

    systemutil.Run "iexplore.exe","http://www.baidu.com"

    2.页面跳转

    Browser("软酷.人力资源引擎").Navigate "http://www.baidu.com"

    3.关闭所有的IE

    iecount = systemutil.CloseProcessByName ("iexplore.exe")  '关闭所有的IE
    msgbox (iecount)  '关闭IE的数量

    4.导入数据表

    datatable.ImportSheet  "C:\pp.xls","Sheet1","Global"

    5.导出数据表

    datatable.Export ("C:\gg.xls")  '将所有的表都导出到相应文件中
    datatable.ExportSheet "C:\bb.xls","Action1"  '将Action1这个表导出到相应文件中

    6.创建action template.

        当希望在每一个新建action时都增加一些头部说明,比如作者、创建日期、说明等,用action template

        来实现最简单快捷。

        方法:用记事本等文本编辑器,输入如下类似的内容:

    '***************Information About scrīpt***************

       'Company: broadengate

              'Author: iori

              'Product: ruanko

              'Date: YYYY-MM-DD

    '******************************************************

             然后将文件保存为ActionTemplate.mst,并存放到QTP安装目录下的dat目录,重启QTP新建的action会包含以上信息。

    7.ChildObjects的应用

    '该代码实现选中页面中所有checkbox的功能
    Set gg = descrīption.Create()
    gg("type").value = "checkbox"
    set aa = Browser("软酷.人力资源引擎").Page("IT技能测评 - 软酷.人力资源引擎").ChildObjects(gg)
    n = aa.count()
    For i = 0 to n-1  count是由0开始计数的,如果写成i = 1 to n,回放时就会报错.
     aa(i).set "on"
    Next

    8.ExitAction

        用结束当前Action的运行,不牵涉其它的Action的运行情况。如果在脚本出现运行错误或者说在循环的跳出条件的约束下结束运行,就不应该使用这个函数,因为很可能结束当前Aciotn的运行之后,其它的Action将会开始运行。

    9.ExitRun

        这是最彻底的结束运行的方式,如果是在交易(运行)出错的情况下,决定停止执行当前交易,则一般使用判断条件的约束强制结束脚本的运行。这时候的结束需要彻底,就使用该函数,这个函数不需要任何参数,直接就停止所有运行。

    10.时间日期加减运算

        使用dateadd("y/m/d",天数,基础日期)可以搞定.
        例如:
          a = date()
          b = dateadd("m",1,a) '当前月向后推一个月
          c = dateadd("d",-15,a) '当前天向前推15天

  • QTP常用tips(大林版[1])

    2008-08-07 11:21:39

    1.生成0~1之间的随机数

    rnd()

    2.截取字符串

    mid(字符串名,开始截取位数,取多少)

    3.时间控件录制不成功解决方案

    Browser("软酷.人力资源引擎").Page("注册信息 - 软酷.人力资源引擎").WebEdit("graduateDate").Object.value = "2008-08-01"

    4.获取对象运行时相关属性

    a = Browser("软酷.人力资源引擎").Page("注册信息 - 软酷.人力资源引擎").WebEdit("idNumber").GetROProperty("value")

    5.比较字符串(true为0)

    m = browser("项目经理管理平台 - 软酷.人力资源引擎").Page("项目经理管理平台 - 软酷.人力资源引擎").Frame("mainRight").WebEdit("WebEdit").Object.value
    n = datatable.Value("mail","Global")
    x = strcomp(m,n)
    If x = 0 Then
     reporter.ReportEvent micPass,"个人邮箱检查结果","个人邮箱正常显示!"
    else
     reporter.ReportEvent micFail,"个人邮箱检查结果","个人邮箱显示不正常!"
    End If

    6.遍历webtable的方法

    b = Browser("软酷.人力资源引擎").Page("项目经理管理平台 - 软酷.人力资源引擎_2").Frame("mainRight").WebTable("个人邮箱").RowCount '取总行数
    For i = 1 to b  '遍历所有行
    c = Browser("软酷.人力资源引擎").Page("项目经理管理平台 - 软酷.人力资源引擎_2").Frame("mainRight").WebTable("个人邮箱").ColumnCount(i)  '取相应行的列数
     For n = 1 to c  '遍历所有列
    a = Browser("软酷.人力资源引擎").Page("项目经理管理平台 - 软酷.人力资源引擎_2").Frame("mainRight").WebTable("个人邮箱").GetCellData(i,n)  '取相应单元格的值
    print a
     Next
    Next

    7.函数调用

    call dalin()

    function dalin()
      msgbox ("大林!")
    end function

    8.输入报告

    reporter.ReportEvent micPass,"报告summary","报告detail"

    9.描述性编程

    (1).
    Browser("name:=软酷.人力资源引擎").page("title:=软酷.人力资源引擎").webedit("name:=userName").set ("dalin")

    (2).
    Set box = descrīption.Create()
    box("name").value = serviceId
    box("value").value = 94
    Browser("软酷.人力资源引擎").Page("IT技能测评 - 软酷.人力资源引擎").WebCheckBox(box).Set "ON"

    10.调用VBS文件

    ExecuteFile  "C:\DBOperation.vbs"

  • QTP连接数据库脚本(软酷版)

    2008-08-05 18:17:31

    '-------------------以下是QTP中的脚本------------------------------------------------------

    ExecuteFile  "C:\DBOperation.vbs"  '调用VBS文件

    Dim objConnection,objRecordSet  '这两个实例一定要先定义(CONNECTION对象实例&RECORDSET对象实例)

    DBConnect()  '连接数据库

    Dim Sql
    Sql ="select * from com_prj_info where prj_id ='837'"

    ExecuteSql(Sql)  '执行SQL
          Msgbox(objRecordSet("prj_name"))

    DBClose()  '关闭数据库的连接


    '-----------------以下是DBOperation.vbs文件的内容.------------------------------------

    Public Sub DBConnect()
    'Dim objConnection     'CONNECTION对象实例
    'Dim objRecordSet       'RECORDSET对象实例
    Dim objCommand          '命令对象实例
    Dim strConnectionString  '连接字符串
    Set ōbjConnection = CreateObject("ADODB.CONNECTION")                '1 - 建立CONNECTION对象的实例
    strConnectionString = "Driver={Microsoft ODBC for Oracle};Server=ruanko;Uid=ruanko;Pwd=ruanko;"    '2 - 建立连接字符串
    objConnection.Open strConnectionString                                '3 - 用Open 方法建立与数据库连接
    End Sub

    Public Sub ExecuteSql(strSql)
    Set ōbjRecordSet = CreateObject("ADODB.RECORDSET")                '4 - 建立RECORDSET对象实例
    Set ōbjCommand = CreateObject("ADODB.COMMAND")              '5 - 建立COMMAND对象实例
    objCommand.ActiveConnection = objConnection
    objCommand.CommandText = strSql
    objRecordSet.CursorLocation = 3
    objRecordSet.Open objCommand    '6 - 执行SQL语句,将结果保存在RECORDSET对象实例中
    End Sub

    Public Sub DBClose() '关闭数据库连接
    objRecordSet.Close
    objConnection.Close
    Set ōbjCommand = Nothing
    Set ōbjRecordSet = Nothing
    Set ōbjConnection = Nothing
    End Sub

我的栏目

我的存档

数据统计

  • 访问量: 13007
  • 日志数: 14
  • 建立时间: 2008-08-05
  • 更新时间: 2008-08-30

RSS订阅

Open Toolbar