51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3707|回复: 8
打印 上一主题 下一主题

使用虚拟控件提示“This function is not supported for virtual objects”?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-3-12 16:44:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
刚学WR 没多久,碰到一些虚拟控件问题,请知道的指教一下。谢谢。

是这样的: 我录了个 用户登录脚本,在脚本由于用户编码和用户口令输入框是公司自己定义的控件,WR认不到,所以我就定义了2个虚拟OBJ(virtual_object_name,virtual_object_pw),来替换原来的无法识别的2个控件,在回放脚本时,提示“This function is not supported for virtual objects”.不知道该怎样解决,找了很多地方都没找到这方面的资料。请大家指教一下。如果有这方面资料的朋友请分享一下,谢谢了。如何才能在脚本中使用虚拟控件?
图和代码如下:

图片地址http://img.photo.163.com/9zprFT0kL6rPFGvZeP5lcg==/5066549581290569.gif


table = "\\dt1.xls";
rc = ddt_open(table, DDT_MODE_READ);
if (rc!= E_OK && rc != E_FILE_OPEN)
        pause("Cannot open table.");
ddt_get_row_count(table,table_RowCount);
for(table_Row = 1; table_Row <= table_RowCount; table_Row ++)
{
        ddt_set_row(table,table_Row);
        if(invoke_application(path_cz,"","",SW_SHOW)!=0)
        {
             report_msg("找不到程序");
             texit;
                        }
#系统登录      
        win_activate ("系统登录");
         set_window ("系统登录", 5);
         edit_set ("virtual_object_name", ddt_val(table,"name"));
         password_edit_set("virtual_object_pw", ddt_val(table,"Pd"));
         button_press ("确定");                                                }
# 字符输入错误,弹出错误窗口
           if (win_exists("pjhx")==E_OK)
            {
                 set_window ("pjhx", 5);
                 button_press ("确定");                           
            }
         if(win_exists("提示信息")==E_OK)
            {
        set_window("提示信息",5);
        button_press("确定");
             }
#如果用户名和密码都为用空        
        if(ddt_val(table,"yhm")== ""||ddt_val(table,"pb") == "")
                {
                      tl_step("用户名和密码",0,"用户名和密码都为空!");
        }
        else if(ddt_val(table,"yhm")=="999"|| ddt_val(table,"pb")=="123")
                {
              tl_step("用户名和密码",1,"成功登入。");                          
                }
}
ddt_close(table);

[ 本帖最后由 kingylq 于 2007-3-12 17:21 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-3-12 22:54:33 | 只看该作者
楼主是执行到哪一句的时候报出错误提示的?说明这一个函数不支持虚拟控件。虚拟控件是根据屏幕上坐标范围设定的,所以最好不要使用
lz再给些信息吧,也许能使用gui map configuration来声明一下
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2007-3-13 09:58:33 | 只看该作者
执行到 edit_set ("virtual_object_name", ddt_val(table,"name")); 这行就开始报错的。
虚拟控件的坐标用的软件界面的相对坐标吗?在指定的区域内输入相应的文本在理论上因该是可以不是吗?斑竹有没这方面的资料?分享一下

用 gui map configuration 声明的话是可以用的。就是可移植性比较差,每次都要重新声明比较麻烦。

[ 本帖最后由 kingylq 于 2007-3-13 10:00 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2007-3-14 10:00:56 | 只看该作者
版主,有办法解决吗?
sdlkfj8
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2007-3-14 22:05:40 | 只看该作者
其实用configuration的话不是很麻烦,你把声明的语句都放到一个脚本中去,之后每次运行录制脚本的时候call一下这个脚本即可
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2007-3-15 09:44:49 | 只看该作者
谢谢斑竹

呵呵。我只是想知道下,虚拟控件的用法...

虚拟控件,不就是为解决无法识别控件问题吗?

在正常的代码中加入虚拟控件,如果可以省去比较多的麻烦,我觉得用虚拟控件会更好点,而且也比较容易,不是吗?

是WR本身的问题吗?对 DELPHI 的支持应该不这么差吧?

[ 本帖最后由 kingylq 于 2007-3-15 09:51 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2007-3-15 21:13:18 | 只看该作者
虚拟控件确实很有用,但我觉得它支持映射过来的类很少,而且还与屏幕坐标有关联,所以用起来有些不爽。
lz可以加载delphi插件,这样会对识别有很大帮助
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2007-3-27 17:50:09 | 只看该作者

edit_set ("virtual_object_name", ddt_val(table,"name"));
password_edit_set("virtual_object_pw", ddt_val(table,"Pd"));
改为:
obj_type("virtual_object_name", ddt_val(table,"name"));
obj_type("virtual_object_pw", ddt_val(table,"Pd"));
问题解决.
原因是virtual_object_name和virtual_object_pw控件属object,  edit_set不能在object类型控件上用
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2007-4-20 11:40:21 | 只看该作者
,,,,,,,,,,,,,,,,,,,,,
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

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

GMT+8, 2024-10-7 14:33 , Processed in 0.100052 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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