見出し画像

【VBA Selenium】要素が見つかるまで待機する。

VBA Seleniumでdriver.getする時に特定の要素が見つかるまで待機を繰り返す処理のサンプル。

Function waitTillElementExist(element)
    Dim elementExists As Boolean
    Dim maxWaitTime As Integer
    Dim waitInterval As Integer
    Dim elapsedTime As Integer
    
    ' 最大待機時間(10秒)
    maxWaitTime = 10
    ' 待機間隔(1秒)
    waitInterval = 1
    ' 経過時間
    elapsedTime = 0

    ' 要素が見つかるまでループ
    Do
        On Error Resume Next
        elementExists = Not element Is Nothing
        On Error GoTo 0
        
        '要素が見つかったらLoopを抜ける
        If elementExists Then Exit Do
        
        ' 要素が見つからなければ1秒待機
        Application.Wait Now + TimeValue("00:00:01")
        elapsedTime = elapsedTime + waitInterval
    Loop While elapsedTime < maxWaitTime

    ' 要素が見つからなかった場合
    If Not elementExists Then
        MsgBox "Element not found within " & maxWaitTime & " seconds."
        End
    End If
End Function

いいなと思ったら応援しよう!