【发布时间】:2012-07-04 07:47:57
【问题描述】:
我正在使用 QTP 开发一个 Windows 窗体 .Net 应用程序,并且有一组重复的复选框并且都具有相同的属性。我需要从每组中选择一个特定的复选框。如果复选框不可见在屏幕上然后我们需要向下滚动,否则会弹出错误消息。有没有办法从每组中选择一个特定的复选框。 情商: abc 特征 1 2 3 abc 特征 1 2 3 4 abc 特征 1 2
我需要从所有集合中选择复选框 1。
【问题讨论】:
我正在使用 QTP 开发一个 Windows 窗体 .Net 应用程序,并且有一组重复的复选框并且都具有相同的属性。我需要从每组中选择一个特定的复选框。如果复选框不可见在屏幕上然后我们需要向下滚动,否则会弹出错误消息。有没有办法从每组中选择一个特定的复选框。 情商: 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 添加任何唯一的属性。
【讨论】: