我正在使用 QTP 开发一个 Windows 表单 .Net 应用程序,并且有一组重复的复选框并且都具有相同的属性。我需要从每组中选择一个特定的复选框。如果复选框在屏幕上不可见然后我们需要向下滚动,否则会弹出错误消息。有没有办法从每组中选择一个特定的复选框。eq: abc 特征 1 2 3 abc 特征 1 2 3 4 abc 特征 1 2
我需要从所有集合中选择复选框 1。
您需要找到一种方法来识别“复选框集”,使用对象间谍或 dom 检查器来查看识别集合的内容(可能是某种div
或span
)为了这个答案,我假设它是div
一个特定的class
"chkbxGrp"
.
然后查找该组中包含的第一个复选框并选中它。
请注意,将复选框滚动到视图中是由 QTP 自动完成的。
如果在预期组不存在时需要失败,则必须找出如何识别特定组,然后在测试中使用预期值,而不是遍历所有此类组。
' Untested code
Set Desc = Description.Create()
Desc("html tag").Value = "div"
Desc("html tag").RegularExpression = False
Desc("class").Value = "chkbxGrp"
' Find all groups
Set groups = Browser("B").Page("P").ChildObjects(Desc)
For i = 0 To groups.Count -1
' in each group check the first checkbox
groups(i).WebCheckBox("index:=0").Set "ON"
Next
您可以使用 QTP 索引“识别”复选框。这不是最好的选择,但如果您只需要第一个复选框。只需在“CheckBox”类型的页面上查找所有对象,如果结果集> 0,则获取第一个。
第二个选项是通过附近的元素“定位”复选框,但在这种情况下,您需要确保它们的位置不会被更改。
顺便说一句,你确定它们完全一样吗?在 QTP 中有一个选项可以为元素位置设置必要的属性。您可以添加任何对出现在您的应用程序中的 CheckBox 唯一的属性。