51Testing软件测试论坛

标题: 如何检测下拉菜单中的某个item是否存在? [打印本页]

作者: wuzhiyongnihao    时间: 2007-12-17 16:55
标题: 如何检测下拉菜单中的某个item是否存在?
window("Notepad").Dialog("Print").Dialog("Printing Preferences").WinComboBox("Paper source:").Select DataTable("Paper_Source", dtGlobalSheet)   最后的“Paper_Soruce”下拉菜单已经被参数化,我想在Select之前先判断一下,要选的参数是否存在。该如何写啊?

多谢个人达人啊:)
作者: zhuyuancan    时间: 2007-12-17 17:01
没必要吧!如果不存在QTP自动会报错的!!
作者: wuzhiyongnihao    时间: 2007-12-17 17:07
谢楼上关注。

就是不想让QTP报错,如果不存在直接返回一个结果到Result里就好了。
作者: zhuyuancan    时间: 2007-12-17 17:11
那可以自己写代码去判断,判断!!
作者: wuzhiyongnihao    时间: 2007-12-17 17:14
对,就是想请教这句代码该怎么写。Select好像没有返回值,我不知道该用哪个语句?

您知道告我一声,先道谢了!
作者: zhuyuancan    时间: 2007-12-17 17:21
可以用getroproperty取出weblist中的值,由从数据表中取到的值去比较!!
x=DataTable("aper_Source", dtGlobalSheet)
y=browser().page().frame().weblist().getroproperty("all items")
if instr(y,x)=0 then
    不存在
else
    存在
end if


仅供参考,如有错误敬请见谅
作者: wuzhiyongnihao    时间: 2007-12-17 17:29
那就是说我要取出所有的item的value咯,有多少个item就要取多少次咯。这个下拉菜单有点多。

不能判断菜单中是否有此item吗?绝望ing。。。
作者: mythxhg    时间: 2007-12-17 18:11
先GET到LIST的COUNT
然后
function ***(你的值)
{
for(int i = 0;i<count;i++){
   if(******WebList("").GetItem(i) == 你的值)
    return 0;//表示存在
}
   return 1;//表示不存在
}

我把QTP当C来写了,你改成VBS的语法就行了,不知道这样合你的要求吗
作者: frankwangzy1103    时间: 2007-12-18 10:20
先get allitems的值,然后把";"处理掉,把所有的value保存到一个数组里面去
然后去比较你要的那个value是不是在数组里面。
我试过的,可以的
作者: 今天有雾    时间: 2007-12-24 16:10
但是请问如何得到这个数组有多少个呀?而且这样比较实在是太占内存了吧
作者: wuzhiyongnihao    时间: 2007-12-26 09:56
现在看来只能用函数比较了。就是比较麻烦。

QTP中函数能不能封装阿,调用起来就方便了。
作者: 美杜莎的瞳孔    时间: 2007-12-26 10:06
有这样的方法的

使用GetContent方法,可以搜索到list中想要的项,例子如下:

Sub GetContent_Example()

With Window("Flight Reservation")
     content = .WinComboBox("Fly From:").GetContent
End With

End Sub
作者: three116    时间: 2007-12-26 14:02
取出来的值用temparray=splite(......)函数来分割就ok了
至于怎么用自己去查下吧
作者: three116    时间: 2007-12-26 14:07
如果想知道数组的上限 可以用ubound(temparray)可以得到




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