非表示の見えない要素を見えるまで待機【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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です