清风随雨 发表于 2007-3-1 17:03:28

WR8.0 不能识别下拉菜单怎么办??

我用WR8.0在录制脚本后,在回放的时候,WR无法打开下拉菜单中的窗体,
原因是找不到该菜单.
脚本中没有对下拉菜单的鼠标单击记录.

请各位朋友帮忙!

dionysus 发表于 2007-3-1 22:05:30

楼主把脚本和录制程序放上来吧

清风随雨 发表于 2007-3-1 23:45:53

回复 #2 dionysus 的帖子

公司卡的严啊~内外网分离~不准往外考东西哦~-

win3323 发表于 2007-3-2 08:53:36

你试下加条下拉菜单的鼠标单击记录:
move_locator_rel(500,500);
click("Left");

jackiepsq 发表于 2007-3-2 12:11:00

如果是非标准控件的话,而你又没有将他定义为标准控件,那WR识别不了是十分正常的,解决方法:将它定义为标准LIST类。
如果标准控件,那你是否已经保存相应的GUI文件,并在运行的时候load入GUI文件。

HYDD 发表于 2007-3-2 12:13:00

怎么将他定义成标准list类?

HYDD 发表于 2007-3-2 12:14:32

我这里也存在楼主说得情况,后来发现第一次点击下拉菜单的操作脚本没有自动生成,后来手工加了一句:obj_mouse_click ("ToolbarWindow32", 20, 9, LEFT);
之后就可以了。那个坐标还得自己试下到底是什么值

mythxhg 发表于 2007-3-2 16:18:25

对付非标准控件就要用卑鄙的方法:
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:40

这样可以比较精确的模拟为标准控件的操作了,但是缺陷就是效率和资源都不够理想,
一般在控件无法识别为标准控件,没有其他合适的函数使用但是又需要比较精确的操作时
才推荐使用这种模拟操作.

HYDD 发表于 2007-3-2 16:23:57

不好意思啊。刚学习winrunner,很多不会得。
请教下,如何将对象识别为OBJ?

mythxhg 发表于 2007-3-2 16:25:24

原帖由 HYDD 于 2007-3-2 12:13 发表
怎么将他定义成标准list类?

也可以考虑一下影射为TComboBox等标准控件,如果不行也就得用笨方法了sdlkfj8

mythxhg 发表于 2007-3-2 16:32:01

原帖由 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:30

回放的时候有时会出现这样的情况:
点击了一下菜单,下拉菜单出现一下又收回去了。然后就找不到下拉菜单中的命令名了。

yejun 发表于 2007-3-7 18:02:29

我也碰到了类似的问题
打开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:16

对SysListView32可以试试用edit_set直接赋值看行不行

zhangtanyu 发表于 2007-4-4 21:49:06

回答14楼:
代码中缺少命令,在set_window ("Auto-Suggest Dropdown", 8)前应该有执行打开下拉列表框的动作语句,但是WR没有将其录下来,可以手动加上活着使用模拟模式录制其脚本。

cc_test 发表于 2007-10-25 17:38:07

其实如果实在不行的话,可以试一下我的土办法:
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:29

"ToolbarWindow32"是什么?我怎么运行不了,gui里怎么添加"ToolbarWindow32"
谢谢
页: [1]
查看完整版本: WR8.0 不能识别下拉菜单怎么办??