发布新日志

  • 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

  • TD不支持IE7.0的解决方法

    2008-08-18 13:58:21

    在TD的安装目录:InetPub\TDBIN中,修改start_a.htm文件,在(ua.lastIndexOf('MSIE 6.0') != -1)后添加(ua.lastIndexOf('MSIE 7.0') != -1),在(ua.lastIndexOf('Mozilla/6') != -1) 前增加(ua.lastIndexOf('Mozilla/7) != -1).就可以了

    var fMSIE3456 = (ua.lastIndexOf('MSIE 3.0') != -1) || (ua.lastIndexOf('MSIE 4.0') != -1) || (ua.lastIndexOf('MSIE 5.0') != -1) || (ua.lastIndexOf('MSIE 5.5') != -1) || (ua.lastIndexOf('MSIE 6.0') != -1) || (ua.lastIndexOf('MSIE 7.0') != -1);


     var fNS3456   = ((ua.lastIndexOf('Mozilla/7') != -1) || (ua.lastIndexOf('Mozilla/6') != -1) || (ua.lastIndexOf('Mozilla/5') != -1) || (ua.lastIndexOf('Mozilla/4') != -1) || (ua.lastIndexOf('Mozilla/3') != -1)) && (ua.lastIndexOf('MSIE') == -1);

  • 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"

  • installanywhere打包过程(openproj版)

    2008-08-07 11:13:07

    1.安装installanywhere
    2.启动程序,选择Create New Project
    3.选择Typical Project Template
    4.点Save As,选择打包后存放安装包的路径,这步操作成功后,相应的目录下,会出现My_Product目录
    5.选择Advanced Designer,进入高级配置页面
    6.在"project"->"info"中录入相应的信息.
      Installer Title指的是安装窗口上的标题
      Installer Name指的是打成的EXE文件的名称
      Product Name指的是产品的名称
    这些名称可以随便给,比如:
      Installer Title (OpenProj)
      Installer Name  (OpenProj_install)
      Product Name    (OpenProj)
    7.在"Project"->"Locales"中选择"Chinese Simplified - zh_CN"后面的复选框.作用是在安装时,可以选择中文,默认是英文.
    8."Pre-Install"->"Action Group:GUI Panel actions"->"Panel:License Agreement:License Agreement",在"License Agreement Text Source File"的Path中,选择一个TXT文档,这个文档就是安装协议.
    9."Pre-Install"->"Action Group:GUI Panel actions"->"Panel:License Agreement:License Agreement",在"Default setting for acceptance of the license agreement"下选择任意一项目."Agree"意思是默认为同意协议."Disagree"意思是默认为不同意协议.
    10.在"Install"中点右键选择Add Files.加入要打包的文件.我们这里要加入lib,license,openproj.jar(这是一个可执行jar包)
    11.点"Add Launcher",选择"com.projity.main.ExtenMain"这个主函数.相应的会出现一个Shortcut,点击这个shortcut,在Name中可以修改快捷方式的名称,如改为OpenProj.在shortcut Icon中,点change可以更换相应快捷方式的图标.
    12.点右键,选择"add action",选择"set system environment variable",将这个环境变量的"variable name"改为path,"set value to"改为"$USER_INSTALL_DIR$",选择"when setting this variable"中的"prepend to existing value"
    13.点击"set classpath",系统会自动设置classpath
    14.点右键,选择"add action",添加一个"create alias,link,shortcut"
    15.选择刚添加的"create alias,link,shortcut",修改name为Uninstall修改installed file(点击choose target,选择"uninstall $PRODUCT_NAME$").在shortcut Icon中,点change可以更换相应快捷方式的图标.
    16.在build中,去掉"windows"->"With VM"的勾
    17.点build project开始打包
    18.点try installer测试一下是否打包成功
    19.安装成功后,可以在程序中找到相应的程序
    20.最后,保存设置,以后如果需要修改设置的话,就不需要重新再做一个了,可以直接到打包目录下找到My_Product.iap_xml这个文件,双击便可以打开设置了.
    21.打成的包放在"*\My_product\My_Product_Build_Output\Web_Installers\InstData\Windows\NoVM",这个目录下

    附加:
    一.设置在安装后,提示重起的过程
    1.在Post-Install中加入一个action(set installanywhere variable-single variable)
    2.设置这个action的值."variable name"设置为:$RESTART_NEEDED$."set value to"设置为:YES_RECOMMENDED
    3.再新加一个action(restart windows)
    4.设置这个action的值.第一个"compare installanywhere variables"设置为:$RESTART_NEEDED$ comtains YES_RECOMMENDED.第二个"compare installanywhere variables"设置为:$USER_REQUESTED_RESTART$ equals YES
    5.注意,正常的顺序是:
     a.set installanywhere variable
     b.panel:install complete
     c.restart windows
    二.打可执行jar包的过程
    1.这里使用eclipse来打jar包,首先需要将原代码从VSS上取下来,并导入工程.
    2.因为原代码中有很多warning,有警告的class就不会被打入jar包,所以设置编译过程中忽略这些警告.在Properties->java compiler->errors/warnings中,将所有的warning改为ignore
    3.右键export->jar file.选择要打包的文件:
     a.openproj_ui下的src
     b.openproj_reports下src下的net.sf.jasperreports.compilers和net.sf.jasperreports.view
     c.openproj_core下src下除default package以外的所有包
     d.openproj_build下的license
    4.勾选export generated class files and resources 和 compress the contents of the jar file
    5.选择打包的路径->next
    6.勾选export class files with compile errors
    7.选择已有的MF文件,这个文件可以在以前的旧包中找到.(如果想新生成一个MF文件也行,要选择main class,生成之后还要修改MF文件,将所有lib目录下的jar包导入.)
    8.Finish就完事啦!!!
    三.设置GUI
    1.Installer UI->look&feel->general ui settings中,startup splash screen image是初始化安装时显示的图片.Installer background image是安装时主背景图片.
    2.Billboards中,加入的图片是install发一步时显示的图片.

  • 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

  • 头疼啊!搞了半天,才发现怎么开空间,这网站NB

    2008-08-05 18:04:02

    头疼啊!搞了半天,才发现怎么开空间,这网站NB

    以后有时间,也常来发发帖,装装大虾,嘿嘿!

我的栏目

我的存档

数据统计

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

RSS订阅

Open Toolbar