非表示の見えない要素を見えるまで待機【Selenium Basic × ExcelVBA】
Webページでクリックした後一定秒数後に表示されるタイプの要素があります
そういった要素は要素自体がある為、要素の有無判定ではなく表示・非表示判定を行います
IsDisplayedプロパティでWeb要素がdisplay:blockであれば表示状態でTrueを返し
display:noneであれば非表示状態でFalseを返す為
DoLoopステートメントの条件を表示(True)にし表示されるまで待機する形をとり実践
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
実際に使用したサンプルコード
Option Explicit
Public Sub Sample()
'driverでChromeDriverを使えるように準備
Dim driver As New Selenium.ChromeDriver
'指定したURLに接続
driver.Get "https://vba.company/samplepage/7/"
'要素を指定して表示かどうか判定
Debug.Print driver.FindElementById("kieru2").IsDisplayed
'IDで指定してクリック
driver.FindElementById("hyouji").Click
'要素が表示の状態まで待機する
Do Until driver.FindElementById("kieru2").IsDisplayed
driver.Wait 10
Loop
'要素を指定して表示かどうか判定
Debug.Print driver.FindElementById("kieru2").IsDisplayed
'IDで指定して文字を送る
driver.FindElementById("btnKeepBox2").SendKeys "aaa"
driver.FindElementById("btnKeepBox").Click
End Sub