51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2241|回复: 6
打印 上一主题 下一主题

[讨论] QTP脚本的神秘问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-10-31 13:14:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
脚本是实现页面和数据库数据比对的过程,如果将脚本的第62、63行放到74、75行的位置,运行过程中会报出 can't identify the object " import file"(of class webtable) 的错误,有没有人知道是什么原因啊 ?
  1  Executefile"..\..\Lib\DBOperation.vbs"函数库
2  Executefile"..\..\Lib\common.vbs"函数库
3  Dim Res,Cmd
4  Dim strng,flag,strcondition,sqlwhere,arr_date(9),i,j,k,obj_selpage,obj_table,pageno,rowno,rndnumber,rowcount1,rowcount2
5  '定义搜索条件
6  arrcondition=array("FILE_NAME","FILE_TYPE","STATUS","EFFECTIVE_DATE","DATE_CREATED","CREATED_BY")
7  DBConnect()
8   rndnumber=0
9   strcondition=arrcondition(rndnumber)
10  Browser("Welcome to RiskTraq").Page("Welcome to RiskTraq").Link("Upload File History").Click
11  Select Case strcondition
12  case"FILE_NAME"
13  Browser("Welcome to RiskTraq").Page("Welcome to RiskTraq_2").WebEdit("fileName").Set "prvf"
14  strng=Browser("Welcome to RiskTraq").Page("Welcome to RiskTraq_2").WebEdit("fileName").GetROProperty("value")
15  flag=0
16  case"FILE_TYPE"
17  Browser("Welcome to RiskTraq").Page("Welcome to RiskTraq_2").WebList("select").Select "File Type"
18  Browser("Welcome to RiskTraq").Page("Welcome to RiskTraq_2").WebList("fileType").Select "Provider Data File"
19  strng=Browser("Welcome to RiskTraq").Page("Welcome to RiskTraq_2").WebList("fileType").GetROProperty("value")
20  flag=0
21   case"STATUS"
22   Browser("Welcome to RiskTraq").Page("Welcome to RiskTraq_2").WebList("select").Select "File Status"
23   Browser("Welcome to RiskTraq").Page("Welcome to RiskTraq_2").WebList("status").Select "Rejected"
24   strng=Browser("Welcome to RiskTraq").Page("Welcome to RiskTraq_2").WebList("status").GetROProperty("value")
25   flag=0
26   case"EFFECTIVE_DATE"
27   Browser("Welcome to RiskTraq").Page("Welcome to RiskTraq_2").WebList("select").Select "Effective Date"
28   Browser("Welcome to RiskTraq").Page("Welcome to RiskTraq_2").WebEdit("effectiveDate").Set "09/21/2007"
29   strng=Browser("Welcome to RiskTraq").Page("Welcome to RiskTraq_2").WebEdit("effectiveDate").GetROProperty("value")
30   flag=2
31   case"DATE_CREATED"
32   Browser("Welcome to RiskTraq").Page("Welcome to RiskTraq_2").WebList("select").Select "Created Date"
33   Browser("Welcome to RiskTraq").Page("Welcome to RiskTraq_2").WebEdit("dateCreated").Set "09/04/2007"
34   strng=Browser("Welcome to RiskTraq").Page("Welcome to RiskTraq_2").WebEdit("dateCreated").GetROProperty("value")
35   flag=2
36   case"CREATED_BY"
37   Browser("Welcome to RiskTraq").Page("Welcome to RiskTraq_2").WebList("select").Select "Created By"
38   Browser("Welcome to RiskTraq").Page("Welcome to RiskTraq_2").WebEdit("createdBy").Set "qiangc"
39   strng=Browser("Welcome to RiskTraq").Page("Welcome to RiskTraq_2").WebEdit("createdBy").GetROProperty("value")
40   flag=0
41    End Select
'---------------------------------------------------------------------------------------------------------------------------
42    Browser("Welcome to RiskTraq").Page("Welcome to RiskTraq_2").WebButton("Go").Click
43   '调用函数生成SQL语句
44   sqlwhere=convert_sql (strcondition,strng,flag)

45   '设置weblist 和webtable对象
46   set obj_selpage=Browser("Welcome to RiskTraq").Page("Welcome to RiskTraq_3").WebList("selpage")
47   set obj_table=Browser("Welcome to RiskTraq").Page("Welcome to RiskTraq_3").WebTable("Import File")
48    pageno=0
49   rowno=2
  
50   webrow=20

51  'sql="select file_name,status,total_records,processed_records,error_records,to_char52  

(effective_date,'mm/dd/yyyy'),created_by,to_char(date_created,'mm/dd/yyyy'),control_file_name from admin_upfile_hx  53  

where"&sqlwhere&"order by effective_date desc"
54   ExecuteSql(sql)
55    i=1
56    Do while i<=webrow

57         for j=0 to 9
       
58        arr_date(j)=Res(j)
               
59        Next
60   '调用比对函数,进行页面数据和数据库数据的比对
61    compare_list  obj_selpage, obj_table,pageno,rowno,arr_date,10
62    set obj_selpage=Browser("Welcome to RiskTraq").Page("Welcome to RiskTraq_3").WebList("selpage")
63    set obj_table=Browser("Welcome to RiskTraq").Page("Welcome to RiskTraq_3").WebTable("Import File")
64    rowno=rowno+1
65   '每个页面只显示10条记录,当记录超过10条,执行翻页操作
'-------------------------------------------------------------------------------------------------
66        If( i mod 10)=0 Then
67        pageno=pageno+1
68        rowno=2
69       
70        If obj_selpage.exist  Then
71                obj_selpage.select"#"&pageno
72         
73        End If
74
75            
76    End if
77    Res.movenext
78    i=i+1
79    Loop
80   DBClose()'关闭数据库

[ 本帖最后由 linnawang 于 2007-11-1 09:09 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-10-31 14:08:18 | 只看该作者
对象没有定义就使用肯定是问题了。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2007-10-31 14:25:57 | 只看该作者
对象定义过
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2007-10-31 14:32:12 | 只看该作者
这里还是个对象不能识别的问题啊, 检查一下,经过脚本处理后,对象发生变化没
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2007-10-31 15:04:48 | 只看该作者
compare_list  obj_selpage, obj_table,pageno,rowno,arr_date,10

问题就出在这句上,你的compare_list把对象弄没了,你如果说不是这个地方出错,请把compare_list 代码贴出来,还有ExecuteSQL贴出来。
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2007-10-31 16:11:29 | 只看该作者
Public Sub  compare_list(obj_SelPage, obj_Table,pageNo,rowNo,data_array,num)
        Dim result
            result=false
        obj_SelPage.Select "#"&pageNo  'go to that  page  in which   row  is compared
            colnum=obj_Table.GetROProperty("cols") 'get  the number of columns in table
                 If num>colnum Then
                'MsgBox " input parameter [num] can't greater than colnum"
                Reporter.ReportEvent micFail,  "check_list_result", "input parameter [num] can't greater than colnum"
        Else
           For c=1 to num
                        If  trim(data_array(c-1))<>trim(obj_Table.GetCellData(rowNo, c)) then
                                Reporter.ReportEvent micFail,  "check_list_result", "Expect  result:" & data_array(c-1) & ", Display  Result:" & obj_Table.GetCellData(rowNo, c)
                                result=false
                        Else
                                Reporter.ReportEvent micPass,  "check_list_result", "Expect  result:" & data_array(c-1) & ", Display  Result:" & obj_Table.GetCellData(rowNo, c)
                                result=true
                        End If
                       Next
        End If
                                     
End  Sub


这个函数在上面的脚本中是循环调用了20次,问题是很随即的出现的,有时是第7次就出错,有时候又是11或是其他的,不固定的

[ 本帖最后由 linnawang 于 2007-11-1 09:08 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2007-11-1 19:21:24 | 只看该作者
唉,问题还没解决吗?我这两天忙了,刚才浏览其他帖子的时候忽然又看到这个问题。。

问题出在翻页的时候:

翻页以后你的Webtable的描述属性无法定位到你对象库里的WebTable("Import File")发生了变化。如果你的循环条件没有问题,你应该每次都是在第11次循环的时候发生错误,也就是翻页的时候。

你应该把WebTable("Import File")的识别属性修改成只用Name来识别就可以了。希望你能看到我的留言更新你的问题。谢谢。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-5-23 21:44 , Processed in 0.073874 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表