Вместо того, чтобы присваивать значение TabIndex
, вы можете вызвать метод TTabSet
ItemRect
для получить координаты вкладки по ее индексу, а затем передать эти координаты методу Click
TestComplete. Вот пример:
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
Однако этот подход требует, чтобы:
- Тестируемое приложение создано с использованием отладочной информации (это делает общедоступные члены, включая
ItemRect
, доступными для TestComplete).
- Код приложения содержит вызов метода
ItemRect
(иначе этот метод будет исключен из исполняемого файла интеллектуальным компоновщиком Delphi, поэтому он будет недоступен для TestComplete).
Кроме того, если в вашем элементе управления вкладками больше вкладок, чем отображается (то есть Tabs.Count
> VisibleTabs
), вам нужно будет прокрутить его, чтобы сначала сделать видимой нужную вкладку. Это можно сделать, например, с помощью свойства FirstIndex
:
Sub ClickTab(TTabSet, ItemIndex)
If ItemIndex >= TTabSet.FirstIndex + TTabSet.VisibleTabs Then
TTabSet.FirstIndex = ItemIndex
End If
Dim index, rect, x, y
index = ItemIndex - TTabSet.FirstIndex
Set rect = TTabSet.ItemRect(index)
x = (rect.Left + rect.Right) \ 2
y = (rect.Top + rect.Bottom) \ 2
TTabSet.Click x, y
End Sub
person
Helen
schedule
29.08.2011