51Testing软件测试论坛
标题:
如何在QTP中调用.net控件的方法
[打印本页]
作者:
blueseach
时间:
2009-5-31 15:58
标题:
如何在QTP中调用.net控件的方法
这个问题已经困扰了我好些天,希望能得到各位高手的指点,多谢先!
在我们测试的软件中,用到很多.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控件里面应该有很多方法都是带了些复杂的数据类型作为参数,这种情况应该也是常见的吧?
作者:
aslandhu
时间:
2009-6-1 00:04
这个问题可以关注一下,等待高人出现。
其实我觉着嘛,复杂的数据类型貌似传不了。
作者:
ziheng198688
时间:
2009-6-5 16:56
关注中 期待高手出现
作者:
lijinshui
时间:
2009-6-6 16:02
可以的
我现在的项目中用到了一堆第三方控件,刚开始的时候我也是特麻烦,在52Test上面问
后来用描述性编程仔细观察每个bar的特点,对了,我这里有很多个Bar 位置都是可以移动的,
静下心来,多做实验肯定可以的,别灰心
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2