【Excel/VBA/Selenium】Webページに指定要素が存在するかチェックする

記事
IT・テクノロジー
みなさんこんにちは。

イプシロンです。

ECサイトなど商品の在庫状況によって、
サイト内の指定要素が変更される場合があります。
そのようなサイトに遭遇した際、
スクレイピングする際に、webページに指定要素が存在するかをチェックすなければエラーになりますので、
本日はその対処法について書いていきます。

結論

指定要素が存在するかどうかを判断して、分岐処理をすれば問題ありません

Webページに指定要素が存在するかチェックするサンプルコード

=================================
Public Sub 指定要素の存在チェック()
    Dim driver As New Selenium.WebDriver
    Dim myBy As New By

    Dim sURL As String
  sURL = "スクレイピングしたいサイトのURLを入力"
    driver.Start "chrome"
    driver.Get sURL
    '■要素が存在していればTrue/存在しなければFalse
    Debug.Print driver.IsElementPresent(myBy.ID("対象要素のIDを入力"))
    '■要素が存在してれば処理を行う
    If driver.IsElementPresent(myBy.ID("対象要素のIDを入力")) Then
        '存在していた場合の処理
    Else
        '存在していない場合の処理
    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
    Debug.Print driver.IsElementPresent(myBy.xpath("xxxxx")) 'xPath
End Sub
=================================

VBA のスクレイピングの情報は結構少ないんですよね。
自身で実装するときに、調べものでドハマりすることが多いです。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す