51Testing软件测试论坛

标题: 关于SQAGetproperty [打印本页]

作者: _simon_    时间: 2005-7-20 21:46
标题: 关于SQAGetproperty
为什么语句Result = SQAGetproperty("Type=ListView;ObjectIndex=1;\;ItemIndex=1", "ItemText", aa)无法得到ItemText值阿,如果不能这么写,那要怎样才能得到该属性的值阿
等待中.......
作者: gabriel    时间: 2005-7-21 09:17
楼主把代码贴出来
作者: _simon_    时间: 2005-7-21 20:11
标题: 代码如下:
Result = SQAGetproperty("Type=ListView;ObjectIndex=1;\;ItemIndex=" &i, "ItemText", aa)
    if aa=Eqp(i) then
        SQALogMessage sqaPass, "Test add Eqp Success", ""
    else
        SQALogMessage sqaFail, "Test add Eqp Failed!", ""
    end if
作者: _simon_    时间: 2005-7-21 20:24
Eqp()属于String ,数据量比较大.要验证的项随机,不好录基线文件,感觉不好用vp.请高手们赐教......
作者: gabriel    时间: 2005-7-22 09:25
楼主的recMethod$中的层次关系没有表示清楚。所以得不到所要的值
作者: pcl2004_27    时间: 2005-7-22 09:45
楼主的代码有问题:

楼主的代码:
其中i什么类型的变量,如果是数值,那么不是字符串,语法有问题,肯定不能调试成功,如果是字符串,那么楼主的这段代码上层应该是个循环,for i=1 to x什么的?
也不成立编写
Result = SQAGetproperty("Type=ListView;ObjectIndex=1;\;ItemIndex=" &i, "ItemText", aa)
    if aa=Eqp(i) then
        SQALogMessage sqaPass, "Test add Eqp Success", ""
    else
        SQALogMessage sqaFail, "Test add Eqp Failed!", ""
    end if

那么楼主的代码 应该改为这样才是争取的
Result = SQAGetproperty("Type=ListView;ObjectIndex=1;\;ItemIndex=" &trim(str(i)), "ItemText", aa)
    if aa=Eqp(i) then
        SQALogMessage sqaPass, "Test add Eqp Success", ""
    else
        SQALogMessage sqaFail, "Test add Eqp Failed!", ""
    end if
str转换字符串会在数值前面默认加上空格,否则会出现 itemindex=  i,加上trim以后就会成为 itemindex=i!

1。一个是检察路径!
2.一个就是要看看你获得的属性是否是正确的,这里要确认大小写!
作者: _simon_    时间: 2005-7-22 23:54
谢谢pcl2004_27和gabriel

语句Result = SQAGetproperty(".\;Type=ListView;ObjectIndex=1" , "ItemCount", EqpCount)能够取到ItemCount属性的,Result = SQAGetproperty(".\;Type=ListView;ObjectIndex=1;\;ItemIndex=1", "ItemText", aa)
运行结果Result = 1005,意思好像是无法找到该控件,难道路径".\;Type=ListView;ObjectIndex=1;\;ItemIndex=1"无法定位到该ListView 的Item?
不解.........要如何修改才对??

[ Last edited by _simon_ on 2005-7-23 at 00:07 ]
作者: 司空公子    时间: 2005-7-25 09:52
1005是找不到这个属性,是不是你的这个控件没有这个属性?用inspector查看一下
作者: _simon_    时间: 2005-7-25 23:51
用inspector查确实没有,不过ListView里有一个Contents有所有Item的信息,如图。请教一下怎么把这里头取出来,或者存储到数组或者存储到文件???
作者: luming    时间: 2005-7-26 08:41
应该没有办法,我下面的方法是取Treeview的,你看看是否可以作为参考。

使用robot的Inspector,抓取treeview的时候,有contents属性,里面就包含了treeview的节点内容,可惜的是, SQAGetProperty不支持读取contents,所以只能使用其它的方法。我下面的代码读取的是Rational Test Samples中ClassicsC中的treeview内容,并保存到一个文件中。

tempfile="C:\treeview.txt"         
Open tempfile For Output As #1 '生成一个treeview文本
Window SetContext, "Caption=Classics Online", ""  '设置ClassicsC为焦点窗体

result1=SQAGetProperty("Type=TreeView;Name=treMain","Nodes.Count",Size)   '取treeview的数目

for i = 1 to cint(size)
teste = "Nodes(" & cstr(i) & ").Text"                                 '取各个条目的内容
result2=SqaGetProperty("Type=TreeView;Name=treMain", teste,a)
Write #1,a
next i

close #1
作者: zepplin    时间: 2006-8-19 17:50
标题: 楼上的,请留步
如果我要取TabControl的ItemText该怎么写啊。我试了好多方法都不行啊
作者: 5am    时间: 2006-8-19 20:36
result1=SQAGetProperty("Type=ListView;ID=1184","Nodes.Count",Size)

我run了一下

status code是1005  没找到property?
作者: zepplin    时间: 2006-8-21 23:31
楼上的可以把脚本修改为即可
result1=SQAGetProperty("Type=ListView;ID=1184","ItemCount",Size)
主意属性是分大小写的
作者: 5am    时间: 2006-8-22 11:28
谢谢楼上
我可以得到ItemCount的Size但是ListView似乎没有ItemCount(i).text这种用法啊


teste = "ItemCount(" & cstr(i) & ").Text"
result2=SqaGetProperty("Type=TreeView;Name=treMain", teste,a)


result2返回1008  not a array     ItemCount(1).text不能用啊  这段code是不是不能用在ListView上?




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