2016-09-20 8 views
3

Ranorex에서 요소의 존재를 기다리는 방법을 발견했지만 그 요소를 기다리는 방법을 알 수 없습니다.Ranorex에서 요소 대기 방법은 무엇입니까?

enter image description here

나는 같은 일을 할,하지만 난 요소가 보일 때까지 기다려야합니다. 죄송 합니다만 WaitFor 문에 대해 가능한 값은 ExistNot Exist입니다. 그리고 제 경우에는 테스트가 신뢰할 수 없기 때문에 요소가 존재 함에도 불구하고 클릭이 시작되지만 여전히 표시되지 않습니다.

이 작업을 수행하는 방법을 알고 있습니까?

웹 요소 용

답변

0

I 그들을 비교하여 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의 강조 표시 기능을 사용하면 빨간색 사각형이 웹 페이지의보기 영역 외부로 그려집니다.

예제를 완성하기 위해 남겨 둡니다. 이 도움이

희망 ...

+0

Ranorex가 마침내 그것을 직접 통합하는 과정에있는 것을 사람들이 많이 묻는 것처럼 보였습니다. 이 [Ranorex 사용자 음성 기사] (http://uservoice.ranorex.com/forums/150109-ideas-to-improve-ranorex/suggestions/17162687-create-function-for-wait-for-visible-and-wait -에 대한) – Sup3rHugh

0

당신은 요소에 대해 대기 할 Visible 속성을 사용할 수 있습니다 :

DateTime start = DateTime.Now; 

while (Repository.Element.Visible) 
{    
    Delay.Seconds(1); 

    if(System.DateTime.Now.Subtract(start).TotalSeconds > MaxWaitTime) 
    {     
     Validate.Fail(""); 
    } 
} 
0

당신은 당신의 repo 경로 [@visible='true']이 요소를 추가 할 수 있으며, WaitForExists 사용

repo.elementInfo.WaitForExists(SearchTimeOut)