无法唯一标识qtp中的复选框

时间:2012-07-04 07:47:57

标签: vbscript qtp

我正在使用QTP处理Windows窗体.Net应用程序,并且有一组重复的复选框,所有复选框都具有相同的属性。我需要从每个集合中选择一个特定的复选框。如果复选框不可见在屏幕上然后我们需要在弹出一个错误信息中删除其他。有一种方法从每个集合中选择一个特定的复选框。 EQ: abc功能 1 2 3 abc功能 1 2 3 4 abc功能 1 2

我需要从所有设置中选择复选框1。

2 个答案:

答案 0 :(得分:3)

你需要找到一种识别“复选框”的方法,使用对象间谍或dom检查器来查看识别集合的内容(可能是某种divspan)在这个答案中我会假设它是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

答案 1 :(得分:1)

您可以使用QTP索引“识别”复选框。 这不是最好的选择,但如果你只需要第一个复选框。 只需在“CheckBox”类型的页面上查找所有对象,如果结果集> 0,得到第一个。

第二个选项是通过附近的元素“定位”复选框,但在这种情况下,您需要确保它们的位置不会被更改。

顺便说一下,你确定它们完全相同吗?在QTP中,可以选择为元素位置设置必要的属性。您可以添加对应用中出现的CheckBoxes唯一的任何属性。