2016-09-15 26 views
6

UI testi için Selenium kullanıyorum.Selenium veya Coypu Öğe gösterimi için bekleyin ve gösterimden önce bekleyin.

Bir düğmeye bastığımda ne yapmak istiyorum. Sonra bir element var olana kadar bekleyeceğim. Ve ne kadar sürdüğüne zaman ayırın. Zaman aşımı ms'den uzun sürer. Yani 0 ya da mevcut değil.

Bunu kullanarak Coypu deneyin:

browser.FindCss("[name=""searchbtn""]").Click() 
Dim vStopwatch = Stopwatch.StartNew() 

browser.TryUntil(Function() browser.FindXPath("//*[@id=""blockDocumentsSearch""]").Hover(), Function() browser.FindCss("#repSearchDocuments > .list-group-item").Exists(), TimeSpan.FromMilliseconds(500), New Options() With { 
       .Timeout = TimeSpan.FromMilliseconds(10000)}) 


     If Not browser.FindCss("#repSearchDocuments > .list-group-item").Exists() Then 
      pTCH.ErrorCurrentStep("Not showing any documents or timeout.", browser) 
      Return 0 
     End If 

     Return vStopwatch.ElapsedMilliseconds 

Ama pek doğru bir sonuç vermek gibi görünmüyor.

cevap

1

Ben Coypu için bir soltuion bulmak: o zaman

Public Module BrowserSessionExtension 
    <Extension> 
    Public Function WaitUntilElementIsPresent(browser As BrowserSession, cssSelector As String, Optional timeout As Integer = 10) As Long 
     Dim vExist As Boolean = False 
     Dim vStopwatch = Stopwatch.StartNew() 
     For i As Integer = 0 To timeout - 1 
      If browser.FindCss(cssSelector, Options.First).Exists() Then 
       vExist = True 
       Exit For 
      End If 
      Thread.Sleep(1000) 
     Next 
     vStopwatch.Stop() 
     If vExist Then 
      Return vStopwatch.ElapsedMilliseconds 
     Else 
      Return 0 
     End If 
    End Function 
End Module 

Ve:

Dim vElementLoadTime As Long = browser.WaitUntilElementIsPresent("#repSearchDocuments > .list-group-item", 20)