QTP在webtable中取值,比大小总是错误 -

来源:百度文库 编辑:神马文学网 时间:2024/04/29 20:11:56

[求助] QTP在webtable中取值,比大小总是错误

QTP, webtableQTP, webtable 代码如下
for i=2 to  y
y=Browser("").Frame("mainFrame_3").WebTable("序号").RowCount
for i=2 to  y
val_id =int(Browser("").Frame("mainFrame_3").WebTable("序号").GetCellData(i,1))
id=DataTable("字段值", dtLocalSheet)
state=DataTable("运算符", dtLocalSheet)
'msgbox(val_id)
Select Case true
Case state="等于"
If val_id = id Then
  reporter.ReportEvent micPass,"实际结果都等于"& id &"。",val_id
  else
  reporter.ReportEvent micFail,"实际结果异常,有不等于"& id &"的,实际值为"& val_id &"。",val_id
End If

Case state="大于"
If val_id > id Then
  reporter.ReportEvent micPass,"实际结果都大于"& id &"。",val_id
  else
  reporter.ReportEvent micFail,"实际结果异常,有小于等于"& id &"的,实际值为"& val_id &"。",val_id
    End If

Case state="小于"
    If val_id < id Then
  reporter.ReportEvent micPass,"实际结果小于"& id &"。",val_id
  else
  reporter.ReportEvent micFail,"实际结果异常,有大于等于"& id &"的,实际值为"& val_id &"。",val_id
  End If

End Select

next

脚本可以成功跑完,可是看结果报告,总是出现比对错误的情况,小于的情况下,QTP正常判断,等于和大于的情况下,虽然实际值是正确的,QTP却判断错误,我用的是QTP9.2。
请各位大侠帮忙,解释下这个古怪的现象吧···折腾了我一下午了。
另外,QTP9.2支持Cint()这个函数吗?我在这段代码里使用的时候,QTP报错,如图    

 

  val_id =int(Browser("").Frame("mainFrame_3").WebTable("序号").GetCellData(i,1))
val_id 已转成int型了 而从datatable中取"id"的你没转
id=Cint(DataTable("字段值", dtLocalSheet))  

 

我也想用Cint来强制转换值,可是我的QTP报错,说VBS不支持Cint。。。。。。  

TOP

 

 

  •  
  仔细看2楼说的,val_id已经用int()转过了,要转的是id。
你F1找一下CInt就知道QTP支持不了。
提示下:Integer的范围是-32,768 to 32,767,超过了用CLng。

 

  •  
5#   的确如此```能成功比对了!!3Q````