51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3220|回复: 10
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2005-10-14 14:03:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ret = SQAGetProperty("Type=CheckBox;Name=cbCode", "State", CheckState)

我调用调试发现ret值为1003
无法正确获取checkbox控件的状态,不知道原因出在哪里?特来求助,谢谢了
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2005-10-14 14:17:31 | 只看该作者
1003表示找不到控件,在前面加上( Window SetContext, "", "")括号内的内容,让robot定位到你要指定的控件上
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2005-10-14 14:23:48 | 只看该作者
楼主是怎么确定CheckBox有State这个属性的

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

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

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 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错误
还请正解?
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2005-10-14 15:24:14 | 只看该作者
ilovejolly
还在吗?
讲讲啊
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2005-10-14 15:39:35 | 只看该作者
首先你要搞清楚框架的结构,用robot的手看看。这里有一些讨论框架的帖子的,你也可以搜索看下

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

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 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,后面却能成功
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 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"

加上这句试试
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2005-10-14 16:40:48 | 只看该作者
请使用Inspector获取对象的识别属性,Inspector可以直接拷贝识别字符串然后粘贴到脚本中,并同时在Inspector中查看对象的上下文,然后和脚本中的上下文对比看是否正确,如果不对请在识别属性中加上上级的识别属性,用“;/;”分割。
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2005-10-14 18:31:56 | 只看该作者

请看附件

各位请看附件.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 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 下一条

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

GMT+8, 2024-11-9 03:49 , Processed in 0.070180 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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