для веб-элементов, то трудно понять, существует ли элемент, виден и т.д.
я достиг надежности, используя расположение DOM страницы и ширину, сравнивая их, в моем примере, скользящий позиция меню и ширину, следующим образом:
Public Function IsMenuVisible() As Boolean
Dim menuVisible As Boolean
'Get page position and width
Dim pageXPosition As Integer = repo.WebPage.Self.Element.ScreenLocation.X
Dim pageWidth As Integer = repo.WebPage.Self.Element.ScreenRectangle.Width
'Get configuration menu position and width
Dim menuXPosition As Integer = repo.WebPage.Menu.Self.Element.ScreenLocation.X
Dim menuWidth As Integer = repo.WebPage.Menu.Self.Element.ScreenRectangle.Width
'If menu top right location is >= web page size (out of screen)
If menuXPosition + menuWidth > pageXPosition + pageWidth Then
Report.Info(String.Format("Configuration menu is hidden (menuXPositon = {0}, pageXPosition = {1}, pageWidth = {2}, menuWidth = {3}).", menuXPosition, pageXPosition, pageWidth, menuWidth))
menuVisible = False
Else
Report.Info("Configuration menu is currently visible.")
menuVisible = True
End If
Return menuVisible
End Function
В моем примере меню расположено в правой части страницы. Пожалуйста, внесите изменения в соответствии с вашими потребностями.
Затем сделать простой пользовательский код в цикле несколько раз, так что меню выглядит следующим образом:
Public Sub WaitForMenuToAppear()
Dim retries As Integer = WaitForMenuToAppearRetries
While Not IsMenuVisible() AndAlso retries > 0
retries -= 1
Report.Info(String.Format("Waiting for configuration menu to be visible ({0}).", retries))
Delay.Duration(1000)
End While
If Not IsMenuVisible() Then
Throw New RanorexException(String.Format("Menu did not appear within '{0}' seconds.", WaitForMenuToAppearRetries))
Else
Report.Info("Menu is visible.")
End If
End Sub
Я должен был сделать это, так как скольжение всегда видна. Используя функцию подсветки Ranorex Spy, красный прямоугольник выведен за пределы области просмотра веб-страницы.
Я оставляю вам для завершения примера.
Надеется, что это помогает ...
Кажется, было так много людей, просящих об этом, что Ranorex, наконец, находится в процессе его непосредственного интегрирования, поскольку вы можете читать в этой [голосовой статье пользователя Ranorex] (http://uservoice.ranorex.com/forums/150109-ideas-to-improve-ranorex/suggestions/17162687-create-function-for-wait-for-visible-and-wait -для) – Sup3rHugh