使用虚拟控件提示“This function is not supported for virtual objects”?
刚学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
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 编辑 ] 楼主是执行到哪一句的时候报出错误提示的?说明这一个函数不支持虚拟控件。虚拟控件是根据屏幕上坐标范围设定的,所以最好不要使用
lz再给些信息吧,也许能使用gui map configuration来声明一下 执行到 edit_set ("virtual_object_name", ddt_val(table,"name")); 这行就开始报错的。
虚拟控件的坐标用的软件界面的相对坐标吗?在指定的区域内输入相应的文本在理论上因该是可以不是吗?斑竹有没这方面的资料?分享一下
用 gui map configuration 声明的话是可以用的。就是可移植性比较差,每次都要重新声明比较麻烦。
[ 本帖最后由 kingylq 于 2007-3-13 10:00 编辑 ] 版主,有办法解决吗?
sdlkfj8 其实用configuration的话不是很麻烦,你把声明的语句都放到一个脚本中去,之后每次运行录制脚本的时候call一下这个脚本即可 谢谢斑竹
呵呵。我只是想知道下,虚拟控件的用法...
虚拟控件,不就是为解决无法识别控件问题吗?
在正常的代码中加入虚拟控件,如果可以省去比较多的麻烦,我觉得用虚拟控件会更好点,而且也比较容易,不是吗?
是WR本身的问题吗?对 DELPHI 的支持应该不这么差吧?
[ 本帖最后由 kingylq 于 2007-3-15 09:51 编辑 ] 虚拟控件确实很有用,但我觉得它支持映射过来的类很少,而且还与屏幕坐标有关联,所以用起来有些不爽。
lz可以加载delphi插件,这样会对识别有很大帮助 将
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类型控件上用 ,,,,,,,,,,,,,,,,,,,,,
页:
[1]