VBAでSeleniumBasicで自動操作で要素が存在するかどうかチェックしたい場合があります。
ページ読み込み待ちでOKとなったにも関わらず、
オブジェクトに指定した要素が存在していないケースがあり、結果、エラーになることがあります。
こちらは指定要素が存在するかどうかを判断して処理を変更すれば問題ありません。
Webページに指定要素が存在するかチェックするサンプルコード
Public Sub test() Dim driver As New Selenium.WebDriver Dim myBy As New By Dim sURL As String: sURL = "https://vba-create.jp/" driver.Start "chrome" driver.Get sURL '■要素が存在していればTrue/存在しなければFalse Debug.Print driver.IsElementPresent(myBy.ID("menu-item-976")) '■要素が存在してれば処理を行う If driver.IsElementPresent(myBy.ID("menu-item-976")) Then '存在していた場合の処理 End If '■上記はidの場合です。id要素以外は以下参照。 Debug.Print driver.IsElementPresent(myBy.Class("xxxxx")) 'Class Debug.Print driver.IsElementPresent(myBy.Name("xxxxx")) 'Name Debug.Print driver.IsElementPresent(myBy.Tag("xxxxx")) 'Tag End Sub
注意点
関連記事
SeleniumBasicについて
Internet Explorer11 のサポート期限が2022年6月までと、スクレイピング自体入れ替えていく必要があります。
今一番スムーズなのはSeleniumBasicを使用したスクレイピングと考えます。
但し、VBAでのネット記事は少なく困っている方も多いと思います。
弊社で代行開発も可能ですので、お気軽にご用命ください。
コメント