51Testing软件测试论坛

标题: WR8.0 不能识别下拉菜单怎么办?? [打印本页]

作者: 清风随雨    时间: 2007-3-1 17:03
标题: WR8.0 不能识别下拉菜单怎么办??
我用WR8.0在录制脚本后,在回放的时候,WR无法打开下拉菜单中的窗体,
原因是找不到该菜单.
脚本中没有对下拉菜单的鼠标单击记录.

请各位朋友帮忙!
作者: dionysus    时间: 2007-3-1 22:05
楼主把脚本和录制程序放上来吧
作者: 清风随雨    时间: 2007-3-1 23:45
标题: 回复 #2 dionysus 的帖子
公司卡的严啊~内外网分离~不准往外考东西哦~-
作者: win3323    时间: 2007-3-2 08:53
你试下加条下拉菜单的鼠标单击记录:
move_locator_rel(500,500);
click("Left");
作者: jackiepsq    时间: 2007-3-2 12:11
如果是非标准控件的话,而你又没有将他定义为标准控件,那WR识别不了是十分正常的,解决方法:将它定义为标准LIST类。
如果标准控件,那你是否已经保存相应的GUI文件,并在运行的时候load入GUI文件。
作者: HYDD    时间: 2007-3-2 12:13
怎么将他定义成标准list类?
作者: HYDD    时间: 2007-3-2 12:14
我这里也存在楼主说得情况,后来发现第一次点击下拉菜单的操作脚本没有自动生成,后来手工加了一句:obj_mouse_click ("ToolbarWindow32", 20, 9, LEFT);
之后就可以了。那个坐标还得自己试下到底是什么值
作者: mythxhg    时间: 2007-3-2 16:18
对付非标准控件就要用卑鄙的方法:
1,将对象识别未OBJ;
2,
   OBJ_GET_TEXT("OBJ",TEXT);                #获取OBJ的TEXT;
   while(TEXT != "***")                            #不是所要的列表项
   {
         OBJ_TYPE("OBJ","<kDOWN>"); #使用键盘模拟选择下一项
         OBJ_GET_TEXT("OBJ",TEXT);    #获取当前项的信息
   }
作者: mythxhg    时间: 2007-3-2 16:22
这样可以比较精确的模拟为标准控件的操作了,但是缺陷就是效率和资源都不够理想,
一般在控件无法识别为标准控件,没有其他合适的函数使用但是又需要比较精确的操作时
才推荐使用这种模拟操作.
作者: HYDD    时间: 2007-3-2 16:23
不好意思啊。刚学习winrunner,很多不会得。
请教下,如何将对象识别为OBJ?
作者: mythxhg    时间: 2007-3-2 16:25
原帖由 HYDD 于 2007-3-2 12:13 发表
怎么将他定义成标准list类?


也可以考虑一下影射为TComboBox等标准控件,如果不行也就得用笨方法了sdlkfj8
作者: mythxhg    时间: 2007-3-2 16:32
原帖由 HYDD 于 2007-3-2 16:23 发表
不好意思啊。刚学习winrunner,很多不会得。
请教下,如何将对象识别为OBJ?


你录制得时候识别得对象能否重放??

你看一下它得对象描述时不时这样?
{
class: object,
MSW_class: *****,        #****时录制到得对象名
displayed: 1,
index: 0                 #或用"location"
}
这样的对象一般可以很好的识别,因为跟X,Y无关

意思就时将对象名为MSW_class得对象识别为 class得对象.
可能需要修改lib\vbinit 下的script对象
作者: HYDD    时间: 2007-3-5 09:05
回放的时候有时会出现这样的情况:
点击了一下菜单,下拉菜单出现一下又收回去了。然后就找不到下拉菜单中的命令名了。
作者: yejun    时间: 2007-3-7 18:02
我也碰到了类似的问题
打开IE,输入部分地址,然后在地址栏的下拉框里会有访问记录,我选择下拉框中的地址登录。
录完脚本如下:


# Browser Main Window_1
        win_activate ("Browser Main Window_1");

# Auto-Suggest Dropdown
        set_window ("Auto-Suggest Dropdown", 8);
        list_select_item ("SysListView32", "http://10.0.xx.xxx:6001/claim");


# Browser Main Window_1
        set_window ("Browser Main Window_1", 0);
        edit_set ("browser_main_edit_location", "http://10.0.xx.");

# Auto-Suggest Dropdown
        set_window ("Auto-Suggest Dropdown", 0);
        list_activate_item ("SysListView32", "http://10.0.xx.xxx:6001/claim");

# xxx系统
        set_window("xxx系统",10);
        edit_set("prpDuserUserCode","1101");
        password_edit_set("prpDuserPassword","12b43482f1c35257");
        button_press("登 录");


但是实际回放的时候红色部分的控件无法识别
作者: jacky9947    时间: 2007-3-23 16:03
对SysListView32可以试试用edit_set直接赋值看行不行
作者: zhangtanyu    时间: 2007-4-4 21:49
回答14楼:
  代码中缺少命令,在set_window ("Auto-Suggest Dropdown", 8)前应该有执行打开下拉列表框的动作语句,但是WR没有将其录下来,可以手动加上活着使用模拟模式录制其脚本。
作者: cc_test    时间: 2007-10-25 17:38
其实如果实在不行的话,可以试一下我的土办法:
obj_mouse_click ("ToolbarWindow32", 20, 9, LEFT);
wait(1);
obj_type "ToolbarWindow32","<kDown_E><kDown_E><kDown_E><kDown_E><kReturn>");
第一步为先点击此下拉菜单所在的地点,点此后应用程序应该会自动显示出所有的下拉菜单的选项,最后一步是用"<kDown_E>"来代表向下几行,然后"<kReturn>"代表回车选中.
作者: cariya    时间: 2007-12-14 17:34
"ToolbarWindow32"是什么?我怎么运行不了,gui里怎么添加"ToolbarWindow32"
谢谢




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