发布新日志

  • qtp关于ordinal identifier参数化的问题

    2010-12-07 09:57:23

    想编写一个选中页面所有checkbox的一个操作

    这个是选中一个复选框的代码:

    Browser("形式审查系统").Page("电子政务").Frame("mainFrame").WebCheckBox("name:=messagecheck","index:=1").Set "ON"

    因为页面上有多个相同对象,所以用了ordinal identifier的index来确定唯一对象

    然后对编码做了些修改,能够选中页面上10个复选框


    For  i = 0 to 9
       
        Browser("形式审查系统").Page("电子政务").Frame("mainFrame").WebCheckBox("name:=messagecheck","index:=i").Set "ON"

    Next

    用了 for 循环

    可是运行的时候,还是只选中一个复选框

    变为以下这种形式后,运行成功

    For  i = 0 to 9
        
        Browser("形式审查系统").Page("电子政务").Frame("mainFrame").WebCheckBox("name:=messagecheck","index:="+Cstr(i)).Set "ON"

    Next




    后续:

    经人指点,终于知道原因所在,"index:=i" 只是把i作为了一个常量给了index,不是变量,如果要赋予变量的话 应该是 "index:="&i 或者我文章中的方法。

  • 关于qtp的手动编写脚本

    2010-12-06 15:34:58

    不知道怎么写这篇文章,因为我对qtp手工编写脚本也不熟,大多数是在录制的基础上修改脚本但qtp的牛人都是自己手工写脚本的,我想成为牛人,所以也学着手工编写脚本。

    很多人的所谓手工编写脚本,就是不依赖于qtp的对象库,所有的对象都写在脚本里,比如描述性编程。其实qtp的对象库还是很强大的,它可以帮助我们手工编写脚本。

    我们可以事先先录制好操作对象,并且对它们命名,这样便于管理对象库,然后就可以手工编写脚本了,qtp有一个好的地方,就是在编写脚本的时候,会自动读取对象库里的对象名,如果有多个对象,可以选择你要的对象的对象名,这样其实可以节省很多时间,而且也不会错误。
  • qtp外部调用vbs脚本,报错“无效类型”

    2010-11-29 11:24:41

    上周想试下qtp的外部调用vbs函数

    通过 file-settings-resources里添加脚本函数

    qtp代码里通过 call来调用函数

    可是运行的时候老是报错“无效类型”

    查了很多办法都没法解决

    只能重装了qtp,问题解决,但是产生的原因还是不知道,估计是qtp的内部问题

  • 使用ExcuteFile时,无效字符的错误

    2010-11-26 15:50:44

    今天用ExcuteFile 调用外部vb脚本的时候,一运行就报"无效字符"的错误

    后来上网查了,发现是因为vb脚本采用的是Unicode的编码,而使用ExcuteFile脚本必须是ansi的编码,后来重新用ansi编码保存了下,再次运行通过。不知道这算不算qtp的一个bug。
  • qtp对excel表的操作

    2010-11-26 09:18:51

    步骤:

    1 Excel的三层概念:ApplicationExcelFileSheet,因此需要创建三个对象来实现对Excel文件的操作。首先创建一个Excel.Application对象excelapp,然后通过excelapp打开一个Excel文件,并返回一个对象给excelbook,最后通过excelbookSheets属性来操作某一个sheet

    2 通过sheet对象的cells子对象来操作某一sheet中的区域,sheet对象可以通过usedRange属性来识别此文件已经使用的cells。通过其中的count方法来获取具体值

    3 操作完成,保存文件、关闭文件、退出程序

    4 释放对象

    代码如下:

    Dim excelapp,excelbook,excelsheet
    Set excelapp = createobject("excel.application")'创建execl的app对象

    'excelapp.Visible=true 'excel是否可见

    set excelbook=excelapp.Workbooks.Open("D:/test.xls")

    Set excelsheet=excelbook.worksheets("2011").usedrange'覆盖sheet的区域

    rowcount=excelsheet.rows.count'取行数

    columncount=excelsheet.columns.count'取列数

    For i=1to rowcount
           For  j=1 to columncount
                  'msgbox excelsheet.cells(i,j)

        Next

    Next

    Set excellsheet=nothing

    excelbook.Close

    excelapp.quit

    'Set excelbook=nothing

    'Set excelapp=nothing

Open Toolbar