canzhu 发表于 2011-4-17 21:36:53

为何QTP9.5的数据输出到数据表时,结果总是随机的出现错误

本帖最后由 canzhu 于 2011-4-17 21:42 编辑

用QTP9.5 进行“计算器的测试”(C:\WINDOWS\system32\calc.exe)
将第一个数字按键(第一个加数)参数化为数据表plusParameters(分别为1,2,3,4)
第二个加数为2。
加后的结果,被作为输出检查点"Edit_3"输出到数据表EditOutput_Text_out中。 这时我发现它后面多了一个点".",也就是说相加后值如果为3, 则EditOutput_Text_out里的是"3."。
而期望值存于数据表C中(分别是3,4,5,6), 用来判断运算结果是否正确。

问题:
1)此代码运行时循环4次,其中输出到EditOutput_Text_out的值经常随机的变为"."(有时一次有时两次)。正常的结果应该是(3.,4.,5.,6.,)
2)判断结果的IF语句运行也很奇怪:有时明明正确的结果,也打印MsgBox"Wrong!"(这种情况也是随机出现的)


百思莫解。

代码如下:

Option Explicit
Dim buttonString,buttonText,aString
SystemUtil.Run"C:\WINDOWS\system32\calc.exe"
wait 1
buttonString= datatable("plusParameters", dtGlobalSheet) ’从数据表取出第一个加数,然后加上双引号
buttonText =""""&buttonString&""""

Window("Calculator").WinButton(buttonText).Click ’第一个加数
wait 1
Window("Calculator").WinButton("+").Click
wait 1
Window("Calculator").WinButton("2").Click’第二个加数为2
wait 1
Window("Calculator").WinButton("=").Click
wait 1
Window("Calculator").WinEdit("Edit").Output CheckPoint("Edit_3") ’检查点Edit_3输出到数据表EditOutput_Text_out中
wait 2
MsgBox datatable("EditOutput_Text_out",dtGlobalSheet)
aString = Cstr(datatable("C",dtGlobalSheet)) + "."
print (aString)

If aString=datatable("EditOutput_Text_out",dtGlobalSheet) Then
MsgBox"Correct!"
    else
MsgBox"Wrong!"
End If
Window("Calculator").close()

shingo0109 发表于 2011-4-18 09:47:44

描述性编程不是这么写的, 这里的WinButton("2")是一个对象, “2”是其中的对象属性,如果要参数化的话,需要用description.create来写
buttonString= datatable("plusParameters", dtGlobalSheet)

Set buttonText = Description.Create
buttonText("xxxx").Value = buttonString   '具体看是哪个属性

Window("Calculator").WinButton(buttonText).Click

或者LZ用SetTOProperty方法来实时set该属性值
页: [1]
查看完整版本: 为何QTP9.5的数据输出到数据表时,结果总是随机的出现错误