我正在Windows平台上自动测试桌面应用程序。我正在使用HP UFT和VBScript。
在WinListView控件中,用于显示多值列表(列表中的每一行都有四列)。将鼠标悬停在每一行上以选择它后,当对四个单元格中的任何一个执行鼠标单击操作时,该单元格中的相应控件将显示(编辑框或下拉列表)
开发人员似乎在每行的单元格中嵌入了临时WinEdit和WinComboBox控件,这使得很难在其上使用Object spy。我成功地通过持有控制键来使对象间谍处理它们,但这些对象的属性不是唯一的,例如不同行的第三个单元格中的ComboBox具有相同的属性.Posting ObjectSpy结果在这里。
**ComboBox in Row 1 Cell 3** "Class Name:=WinComboBox", "abs_x:=1041", "abs_y:=551", "all items:=Hours\nMinutes", "attached text:=", "enabled:=True", "focused:=True", "height:=21", "hwnd:=7602202", "items count:=2", "nativeclass:=ComboBox", "object class:=ComboBox", "regexpwndclass:=ComboBox", "regexpwndtitle:=Minutes", "rightaligned:=False", "righttoleftlayout:=False", "righttoleftreading:=False", "selection:=Minutes", "text:=Minutes", "visible:=True", "width:=90", "window id:=7988488", "windowextendedstyle:=0", "windowstyle:=1342177987", "x:=354", "y:=257"
**ComboBox in Row 5 cell 3**
"Class Name:=WinComboBox",
"abs_x:=1041",
"abs_y:=619",
"all items:=Hours\nMinutes",
"attached text:=",
"enabled:=True",
"focused:=True",
"height:=21",
"hwnd:=11601852",
"items count:=2",
"nativeclass:=ComboBox",
"object class:=ComboBox",
"regexpwndclass:=ComboBox",
"regexpwndtitle:=Minutes",
"rightaligned:=False",
"righttoleftlayout:=False",
"righttoleftreading:=False",
"selection:=Minutes",
"text:=Minutes",
"visible:=True",
"width:=90",
"window id:=7988488",
"windowextendedstyle:=0",
"windowstyle:=1342177987",
"x:=354",
"y:=325"
我尝试过使用WinListView.GetItem选择行但是只保留了第一个单元格,它是一个编辑框并且可以正常工作。对于其余三列,我找不到任何解决方法。 我尝试使用 WinListView.GetItem()执行点击。选择操作提供偏移(以像素为单位)点击每个单元格,但这不会激活嵌入式控件虽然我看到鼠标移动并执行点击时试运行。
记录和播放没有提供太多见解,因为播放操作不会每次成功复制操作,并且对不同行的单元格上的操作使用相同和通用名称。
WinListView("WinListView Name").WinEdit("Edit").Set "20"
DialogObject.WinComboBox("ComboBox").Select "Hours"
图片1 The basic WinListView looks like this 图2 After selecting a row and clicking on a cell the ComboBox or EditBox appears