|
这个问题已经困扰了我好些天,希望能得到各位高手的指点,多谢先!
在我们测试的软件中,用到很多.net的第三方控件,其中有一个是DevComponents.DotNetBar,是一种工具条,在QTP中被识别为swfobject.录制生成的语句如下
SwfWindow("Form1").SwfObject("bar1").Click 27,12 '点击其中一个按钮
在vs 2005中看到DevComponents.DotNetBar有GetItems方法,用来获取工具条中的某些符合要求的按钮,该方法有三种重载:
bar.GetItems(string ItemName);
bar.GetItems(string ItemName,Type itemType);
bar.GetItems(string ItemName,Type itemType,bool useGlobalName);
在.net中,该方法可以这样使用
bar1.GetItems("buttonItem2", typeof(DevComponents.DotNetBar.ButtonItem)),返回的是一个按钮的数组
而在QTP中我用Set bar=SwfWindow("Form1").SwfObject("bar1").Object 得到对应的Object,然后输入bar.,后面自动出现的属性和方法列表,包括下面这三个
bar.GetItems(ItemName)
bar.GetItems1(ItemName,itemType)
bar.GetItems2(ItemName,itemType,useGlobalName)
我想应该是把.net里面的GetItems方法分别映射成了以上的,把相同的方法名改成了GetItems1和GetItems2。现在的问题是,如果想调用其中的第二种GetItems方法,是应该用bar.GetItems(string ItemName,Type itemType)还是
bar.GetItems1(ItemName,itemType)?
两种都试过,都没有成功。在QTP中识别出的方法,参数都只是一个名称,没有指定数据类型,我不知道里面的第二个参数itemType 该怎么传递?在VBS里面并没有Type这样一种数据类型,怎么构造出一个指定的Type并传递给方法呢?
.net控件里面应该有很多方法都是带了些复杂的数据类型作为参数,这种情况应该也是常见的吧? |
|