51Testing软件测试论坛

标题: QTP -函数返回值为空 [打印本页]

作者: yanyouqing    时间: 2012-3-27 16:47
标题: QTP -函数返回值为空
本帖最后由 yanyouqing 于 2012-3-28 08:49 编辑

Dim strList
     strList=DotnetFactory.CreateInstance("System.Collections.ArrayList")
     strList= Checked_CheckBox

Function Checked_CheckBox()
Dim rows,columns,row_count,objCheckBox
Dim myList
Set myList = DotnetFactory.CreateInstance("System.Collections.ArrayList")'调用DotnetFactory穿件一个ArrayList实例
row_count=Browser("呼叫中心").Page("呼叫中心").Frame("_workspaceMain").WebTable("序号").RowCount'获取webtable的总行数
columns=7'checkbox所在列
rows=RandomNumber(1,row_count)
   If rows=1 Then'如果rows=1,循环webtable将标题全部添加到myList中
       For i=1 to row_count
         myList.Add(Browser("呼叫中心").Page("呼叫中心").Frame("_workspaceMain").WebTable("序号").GetCellData(i,2))
       Next
       Checked_CheckBox=myList
   Else
         myList.Add(Browser("呼叫中心").Page("呼叫中心").Frame("_workspaceMain").WebTable("序号").GetCellData(rows,2))'获取webtable中指定行和列的文本字符串
         Checked_CheckBox=myList
   End If
  Set  objCheckBox=Browser("呼叫中心").Page("呼叫中心").Frame("_workspaceMain").WebTable("序号").ChildItem(rows,columns,"WebCheckBox",0)'获取指定行和列上的webcheckbox
  objCheckBox.Set "ON"'随机勾选checkbox
End Function


为什么strList= Checked_CheckBox,strList老是空值?
作者: 正在更新    时间: 2012-3-27 16:47
本帖最后由 yanyouqing 于 2012-3-28 08:49 编辑

Dim strList

    set  strList=DotnetFactory.CreateInstance("System.Collections.ArrayList")  '这句多余了
    set  strList= Checked_CheckBox

   print strList.item(i)

Function Checked_CheckBox()
Dim rows,columns,row_count,objCheckBox
Dim myList
Set myList = DotnetFactory.CreateInstance("System.Collections.ArrayList")'调用DotnetFactory穿件一个ArrayList实例
row_count=Browser("呼叫中心").Page("呼叫中心").Frame("_workspaceMain").WebTable("序号").RowCount'获取webtable的总行数
columns=7'checkbox所在列
rows=RandomNumber(1,row_count)
   If rows=1 Then'如果rows=1,循环webtable将标题全部添加到myList中
       For i=1 to row_count
         myList.Add(Browser("呼叫中心").Page("呼叫中心").Frame("_workspaceMain").WebTable("序号").GetCellData(i,2))
       Next
      set Checked_CheckBox=myList
   Else
         myList.Add(Browser("呼叫中心").Page("呼叫中心").Frame("_workspaceMain").WebTable("序号").GetCellData(rows,2))'获取webtable中指定行和列的文本字符串
        set Checked_CheckBox=myList
   End If
  Set  objCheckBox=Browser("呼叫中心").Page("呼叫中心").Frame("_workspaceMain").WebTable("序号").ChildItem(rows,columns,"WebCheckBox",0)'获取指定行和列上的webcheckbox
  objCheckBox.Set "ON"'随机勾选checkbox
End Function
作者: luchao215225    时间: 2012-3-27 17:46
strList=DotnetFactory.CreateInstance("System.Collections.ArrayList")
     strList= Checked_CheckBox

set      strList=DotnetFactory.CreateInstance("System.Collections.ArrayList"),应该是少了set
作者: luchao215225    时间: 2012-3-27 17:54
myList.Add(Browser("呼叫中心").Page("呼叫中心").Frame("_workspaceMain").WebTable("序号").GetCellData(rows,2))'获取webtable中指定行和列的文本字符串
                Checked_CheckBox=temp_str


另问下 temp_str 值是多少?没看到有赋值啊.
作者: mimmy    时间: 2012-3-27 18:37
两句Checked_CheckBox=temp_str之前都没对temp_str赋值
作者: yanyouqing    时间: 2012-3-28 08:50
两句Checked_CheckBox=temp_str之前都没对temp_str赋值
mimmy 发表于 2012-3-27 18:37



    不好意思,temp_str是之前调试用的临时变量,我需要返回myList。
作者: yanyouqing    时间: 2012-3-28 09:47
strList=DotnetFactory.CreateInstance("System.Collections.ArrayList")
     strList= Checked_CheckBox ...
luchao215225 发表于 2012-3-27 17:46



    问题已经解决了,你说的少了set是其中一个问题。还存在另一个问题,我用
Set  strList=DotnetFactory.CreateInstance("System.Collections.ArrayList") 申明一个数组,然后接收返回的值我想把值用print strList.Item(i)打印出来,它报找不到Item方法。
作者: 黑羽祭    时间: 2012-3-28 09:49
Checked_CheckBox=myList改为myList.copyto(Checked_CheckBox)试试呢?
作者: 正在更新    时间: 2012-3-28 10:31
没做过.net

普通数组打印其中元素的方法是:

for i=0 to Ubound(arry)

  print arry(i)

next

看起来楼主创建的是个数组列表对象,其中应该有暴漏出来的方法或属性

如果把 myList 对象从函数返回

需要在函数内也用SET

set Checked_CheckBox=myList

相当于返回了这个对象的引用,有了这个引用句柄 就可以通过它在内存中找到此对象实例中暴漏的方法或属性了!




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2