Мне нужно прокрутить до элемента, присутствующего в таблице для приложения WPF, значение динамически предоставляется во время выполнения.
У меня есть код ниже, который отлично работает для небольшого списка, так как полоса прокрутки перемещается правильно, но не прокручивается до элементов в конце длинного списка.
Мой список, как показано ниже, и я прокручиваю, используя имена (A1
, A2
, ...)
A1 1 3
A2 1 5
S1 1 3
Q2 1 5
.....
.....
Z7 1 3
Z82 1 5
Z9 1 3
Imports SilkTest.Ntf.Wpf
Public Module Main
Dim _desktop As Desktop = Agent.Desktop
Public Sub Main()
Dim iPosition As Double = 0.5
Dim iSumPosition As Double = 0.0
Dim sObjlocator As String = "//WPFListView[@automationId='MyListView']"
Dim sData As String = "Z118"
Dim sObjSublocator As String = "//WPFToggleButton[@caption='*']"
Dim rows As IList = _desktop.WPFListView(sObjlocator).FindAll(sObjSublocator)
Dim sObjExist As Boolean = False
For Each row As WPFToggleButton In rows
Dim sString As String = row.Text
Console.WriteLine(sString) ' <--names
If Trim(sString) = sData Then
sObjExist = True
Exit For
Else
iSumPosition += iPosition
Console.WriteLine(iSumPosition) ' <--Position
_desktop.WPFListView(sObjlocator).ScrollToPosition(iSumPosition, Orientation.Vertical)
End If
Next
End Sub
End Module
Выпуск:
Как показано в выводе ниже, напечатанные строки A1
, A10
, ... из Console.WriteLine(sString)
и числа из Console.WriteLine(iSumPosition)
работают только для нескольких объектов вне экрана, полоса прокрутки перемещается вертикально вниз, но если мой список большой и мне нужно многократно прокручивать, прокрутка больше не работает.
Полоса прокрутки не прокручивается до конца для имен рядом с концом списка, только если мой список очень мал, он также прокручивается до самого последнего элемента.
В режиме отладки я вижу, что список строк (Dim rows As IList = _desktop.WPFListView(sObjlocator).FindAll(sObjSublocator)
) не имеет значений (имен) для элементов в конце списка.
В выводе ниже мы видим, что имена и позиции печатаются изначально, но ближе к концу длинного списка печатаются только позиции.
Выход:
A1
0.5
A10
1
A11
1.5
A12
2
...
...
...
9.5
10
10.5
Дополнительная информация:
- Тип локатора - WPFScrollBar.
- Параметры предварительного заполнения форм WPF в SilkTest: yes
- Использование средства автоматизации тестирования: Microfocus SilkTest 17,5