liwei985 发表于 2005-10-14 14:03:41

关于SQAGetProperty函数返回1003错误,求助

ret = SQAGetProperty("Type=CheckBox;Name=cbCode", "State", CheckState)

我调用调试发现ret值为1003
无法正确获取checkbox控件的状态,不知道原因出在哪里?特来求助,谢谢了

gabriel 发表于 2005-10-14 14:17:31

1003表示找不到控件,在前面加上( Window SetContext, "", "")括号内的内容,让robot定位到你要指定的控件上

ilovejolly 发表于 2005-10-14 14:23:48

楼主是怎么确定CheckBox有State这个属性的

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

如果还有问题,可以
1 分析页面框架是否正确,SQAGetProperty最麻烦的就是复杂框架
2 checkbox是否属于别的控件(如属于datagrid的一个单元格),这种情况robot通过这种方法认不出来

liwei985 发表于 2005-10-14 14:38:41

整段脚本如下:
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:14

ilovejolly
还在吗?
讲讲啊

ilovejolly 发表于 2005-10-14 15:39:35

首先你要搞清楚框架的结构,用robot的手看看。这里有一些讨论框架的帖子的,你也可以搜索看下

因为框架的环境我不清楚,而且模拟不出来,所以只能给建议,代码是不可能给出来的。

liwei985 发表于 2005-10-14 16:22:04

整段脚本如下:
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:00

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:48

请使用Inspector获取对象的识别属性,Inspector可以直接拷贝识别字符串然后粘贴到脚本中,并同时在Inspector中查看对象的上下文,然后和脚本中的上下文对比看是否正确,如果不对请在识别属性中加上上级的识别属性,用“;/;”分割。

liwei985 发表于 2005-10-14 18:31:56

请看附件

各位请看附件.

海龙 发表于 2005-10-15 07:29:18

你按右侧的滚动条,看一下他的父对象是什么,可能会有多级

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" 这一句是起作用的.可以找到控件.
这种情况我也遇到过,录制的脚本有作用,但是放到自编辑的脚本中就无效,不知道什么原因,但是可以利用我上面说的方法解决。
你在试一下
页: [1]
查看完整版本: 关于SQAGetProperty函数返回1003错误,求助