要素の存在有無は、FindElementBy系の関数で例外キャッチやNothing判定で可能です。しかし、いまいちコードが綺麗にならないので、別の方法を調査したところIsElementPresentという関数を見つけたので紹介します。
IsElementPresentで解決する
関数名が目的を表していますね。要素有無を判定する関数となります。戻り値はBooleanです。
IsElementPresent関数の引数はByクラスとなります。Byクラスの利用方法はFindElementBy系とほぼ一緒です。使い方も非常に簡単なので、サンプルプログラムを確認してください。
By系の関数一覧を以下に記載します。FindElementBy系とほぼ一緒であることがわかると思います。
| 関数名 | 説明 | 
|---|---|
| Id | Idを検索する | 
| Class | CSSクラスを検索する | 
| LinkText | リンクテキストを検索する | 
| Name | 名前を検索する | 
| PartialLinkText | リンクテキストの一部を検索する | 
| Tag | タグを検索する | 
| Css | Cssセレクタを利用して検索する | 
| XPath | XPathを利用して検索する | 
サンプルプログラム(コピペでOK)
Option Explicit
Sub sample()
    Dim dr As New Selenium.WebDriver
    Dim myBy As New By
    
    dr.Start "Chrome"
    dr.Get "https://www.google.co.jp/"
 
    Debug.Print dr.IsElementPresent(myBy.Name("q"))         ' True
    Debug.Print dr.IsElementPresent(myBy.Class("hogehoge")) ' False
    Stop
End Sub
 
  
  
  
  