Четвертая строка кода выполняется сразу после запуска программы.
Поскольку программе требуется некоторое время загрузки, вам нужно подождать, пока программа завершит загрузку, прежде чем пытаться найти элемент управления в графическом интерфейсе. Вы можете сделать это, используя цикл while в сочетании с секундомером для тайм-аута.
Dim shouldContinue As Boolean = True
Dim stopWatch As StopWatch = New StopWatch()
Dim timeOut As TimeSpan = TimeSpan.FromSeconds(30)
stopWatch.Start()
While shouldContinue AndAlso timeOut > stopWatch.Elapsed
If element.IsFound Then
shouldContinue = False
stopWatch.Stop()
End If
End While
element.IsFound
- это просто макет кода, вам нужно будет заполнить этот пробел. Этот является хорошим Q / A, чтобы показать вам, как проверить, загружен ли элемент.
Еще одна вещь, которую вы должны принять во внимание, это вероятность того, что ваш диалог входа в систему работает в другом дескрипторе окна . Если дескриптор окна, используемый winappdriver, отличается от дескриптора окна, в котором находится ваш элемент, вы не сможете найти этот элемент.
Также проверьте, можете ли вы найти то, что вы ищете, в PageSource
свойстве xml вашего драйвера. Обычно я делаю это, вызывая это свойство в окне просмотра Visual Studio и копируя его содержимое в инструмент форматирования xml.