51Testing软件测试论坛

标题: 关于SQAGetProperty函数返回1003错误,求助 [打印本页]

作者: liwei985    时间: 2005-10-14 14:03
标题: 关于SQAGetProperty函数返回1003错误,求助
ret = SQAGetProperty("Type=CheckBox;Name=cbCode", "State", CheckState)

我调用调试发现ret值为1003
无法正确获取checkbox控件的状态,不知道原因出在哪里?特来求助,谢谢了
作者: gabriel    时间: 2005-10-14 14:17
1003表示找不到控件,在前面加上( Window SetContext, "", "")括号内的内容,让robot定位到你要指定的控件上
作者: ilovejolly    时间: 2005-10-14 14:23
楼主是怎么确定CheckBox有State这个属性的

请修改脚本如下
result = SQAGetProperty("Type=CheckBox;Name=chkExistingInPage", "Status", txtValue)

如果还有问题,可以
1 分析页面框架是否正确,SQAGetProperty最麻烦的就是复杂框架
2 checkbox是否属于别的控件(如属于datagrid的一个单元格),这种情况robot通过这种方法认不出来
作者: liwei985    时间: 2005-10-14 14:38
整段脚本如下:
Window SetContext, "Caption=welcome - Microsoft Internet Explorer", ""   
    Browser SetFrame,"Type=HTMLFrame;HTMLId=right",""   
    ret = SQAGetProperty("type=CheckBox;name=cbCode", "status", CheckState)
    if CheckState= 0 then
    checkbox Click,"Type=CheckBox;Name=cbCode"
确实是含有框架的页面,frameset做的,但是我运行注意到
checkbox Click ,"Type=CheckBox;Name=cbCode" 这一句是起作用的.可以找到控件.
只是 ret = SQAGetProperty("type=CheckBox;name=cbCode", "status", CheckState)产生1003错误
还请正解?
作者: liwei985    时间: 2005-10-14 15:24
ilovejolly
还在吗?
讲讲啊
作者: ilovejolly    时间: 2005-10-14 15:39
首先你要搞清楚框架的结构,用robot的手看看。这里有一些讨论框架的帖子的,你也可以搜索看下

因为框架的环境我不清楚,而且模拟不出来,所以只能给建议,代码是不可能给出来的。
作者: liwei985    时间: 2005-10-14 16:22
整段脚本如下:
Window SetContext, "Caption=welcome - Microsoft Internet Explorer", ""   
    Browser SetFrame,"Type=HTMLFrame;HTMLId=right",""   
    ret = SQAGetProperty("type=CheckBox;name=cbCode", "status", CheckState)
    if CheckState= 0 then
    checkbox Click,"Type=CheckBox;Name=cbCode"
确实是含有框架的页面,frameset做的,但是我运行注意到
checkbox Click ,"Type=CheckBox;Name=cbCode" 这一句是起作用的.可以找到控件.
只是 ret = SQAGetProperty("type=CheckBox;name=cbCode", "status", CheckState)产生1003错误
为事么同样的语句前面不能找到对象返回1003,后面却能成功
作者: ilovejolly    时间: 2005-10-14 16:26
Window SetContext, "Caption=welcome - Microsoft Internet Explorer", ""   
    Browser SetFrame,"Type=HTMLFrame;HTMLId=right",""   
    ret = SQAGetProperty("type=CheckBox;name=cbCode", "status", CheckState)
    if CheckState= 0 then

   Browser SetFrame,"Type=HTMLFrame;HTMLId=right",""  

    checkbox Click,"Type=CheckBox;Name=cbCode"

加上这句试试
作者: 海龙    时间: 2005-10-14 16:40
请使用Inspector获取对象的识别属性,Inspector可以直接拷贝识别字符串然后粘贴到脚本中,并同时在Inspector中查看对象的上下文,然后和脚本中的上下文对比看是否正确,如果不对请在识别属性中加上上级的识别属性,用“;/;”分割。
作者: liwei985    时间: 2005-10-14 18:31
标题: 请看附件
各位请看附件.
作者: 海龙    时间: 2005-10-15 07:29
你按右侧的滚动条,看一下他的父对象是什么,可能会有多级

Window SetContext, "Caption=welcome - Microsoft Internet Explorer", ""   
这是窗体的上下文,你看一下从这个到你需要的对象有几级,然后在脚本中放入这些识别方法。

Robot在手工编写脚本时,如果对象层次比较多,获取对象的识别属性有些麻烦。

整段脚本如下:
Window SetContext, "Caption=welcome - Microsoft Internet Explorer", ""   
    Browser SetFrame,"Type=HTMLFrame;HTMLId=right",""   
    ret = SQAGetProperty("type=CheckBox;name=cbCode", "status", CheckState)
    if CheckState= 0 then
    checkbox Click,"Type=CheckBox;Name=cbCode"
确实是含有框架的页面,frameset做的,但是我运行注意到

checkbox Click ,"Type=CheckBox;Name=cbCode" 这一句是起作用的.可以找到控件.
这种情况我也遇到过,录制的脚本有作用,但是放到自编辑的脚本中就无效,不知道什么原因,但是可以利用我上面说的方法解决。
你在试一下




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