如何通过TabIndex在TTabSet中选择选项卡时引发单击事件?

时间:2011-08-11 18:40:03

标签: vbscript automation tabindex automated-tests testcomplete

我有一个TestComplete测试,使用TTabSet属性选择TabIndex中的标签:

Tab.TabIndex = 1

这很有效。但是,我注意到该选项卡上的某些对象要求启用click事件。也就是说,我如何通过TabIndex选择标签项目并涉及某种点击事件?

1 个答案:

答案 0 :(得分:2)

您可以调用TabIndex的{​​{3}}方法来获取标签的坐标,而不是将值分配给TTabSet,然后将这些坐标传递给TestComplete { {1}}方法。这是一个例子:

Click

但是,这种方法要求:

  • 您测试的应用程序是使用调试信息构建的(这使得公共成员,包括Sub Main Set tabSet = Sys.Process("Project1").VCLObject("Form1").VCLObject("TabSet1") For i = 0 To tabSet.Tabs.Count ClickTab tabSet, i Delay 1000 Next End Sub Sub ClickTab(TTabSet, ItemIndex) Dim rect, x, y Set rect = TTabSet.ItemRect(ItemIndex) x = (rect.Left + rect.Right) / 2 y = (rect.Top + rect.Bottom) / 2 TTabSet.Click x, y End Sub 可用于TestComplete)。
  • 应用程序代码包含ItemRect方法调用(否则此方法将被Delphi的智能链接器遗漏在EXE之外,因此TestComplete将无法使用此方法。)

此外,如果您的标签控件的标签数多于显示的标签(即ItemRect> Tabs.Count),则需要先滚动它以使所需的标签首先显示。例如,您可以使用ItemRect属性执行此操作:

VisibleTabs