51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2402|回复: 3
打印 上一主题 下一主题

[求助] 如何在QTP中调用.net控件的方法

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-5-31 15:58:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个问题已经困扰了我好些天,希望能得到各位高手的指点,多谢先!

在我们测试的软件中,用到很多.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控件里面应该有很多方法都是带了些复杂的数据类型作为参数,这种情况应该也是常见的吧?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2009-6-1 00:04:32 | 只看该作者
这个问题可以关注一下,等待高人出现。
其实我觉着嘛,复杂的数据类型貌似传不了。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2009-6-5 16:56:57 | 只看该作者
关注中 期待高手出现
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2009-6-6 16:02:04 | 只看该作者
可以的
我现在的项目中用到了一堆第三方控件,刚开始的时候我也是特麻烦,在52Test上面问
后来用描述性编程仔细观察每个bar的特点,对了,我这里有很多个Bar 位置都是可以移动的,
静下心来,多做实验肯定可以的,别灰心
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-12 04:02 , Processed in 0.075250 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表