Edge/Chromeでボタンをクリックする
Excel VBAマクロでEdge/Chromeを自動操作する際のクリック処理です。
クリックの基本です。
'■id要素をクリック driver.FindElementById(“★★★”).Click '■Name要素をクリック driver.FindElementsByName(“★★★”)(●●●).Click '■Class要素をクリック driver.FindElementsByClass(“★★★”)(●●●).Click
記号★、●の意味
コード記号 | 意味 | 内容 |
★★★ | 属性 | 下記参照。 |
●●● | 添え字 | idの場合は不要(一つしかない為) それ以外は先頭から〇番目を入力 ※最初は1です。0ではありません。 |
idのサンプル(amazon)
idはhtml内で重複する事はありませんので、クリックするのは簡単です。
amazon検索ボタンのhtmlサンプルです。
/*■amazonのhtmlコード(検索ボタン)id*/ <span id="nav-search-submit-text" class="nav-search-submit-text nav-sprite> 検索 </span>
検索ボタンは「id=”nav-search-submit-text”」とid属性が存在しています。
'■id要素をクリック driver.FindElementById(“nav-search-submit-text”).Click '■もちろんidを変数に入れてもOK Dim SearchBtn as String SearchBtn = "nav-search-submit-text" driver.FindElementById(SearchBtn).Click
classのサンプル(yahoo)
classはidと異なり、html内で重複する場合があります。
yahoo検索ボタンのhtmlサンプルです。
/*■yahooのhtmlコード(検索ボタン)class*/ <span class="PHOgFibMkQJ6zcDBLbga8"> 検索 </span>
yahoo検索ボタンはidは存在しませんが、「class=”PHOgFibMkQJ6zcDBLbga8″」とclass属性が存在しています。
'■class要素をクリック driver.FindElementsByClass(“PHOgFibMkQJ6zcDBLbga8”)(1).Click '■もちろんclassを変数に入れてもOK Dim SearchBtn as String SearchBtn = "PHOgFibMkQJ6zcDBLbga8" driver.FindElementsByClass(SearchBtn)(1).Click
classはhtml内に重複して存在する可能性があります。
必ず添え字(今回であれば1)を入力して、html内のClassの位置の指定(上から〇番目)を指定する必要があります。
nameのサンプル
classと基本的には同様なので割愛します。
html内に下記のような「name=」で始まる要素を探して下さい。
<input type="image" src="/login_btn.gif" alt="ログイン" name="logIn">
注意点
IE自動操作の場合、id以外は複数形の表現でした。(例)FindElementsByClass
SeleniumBasicの場合はid以外も単一形の表現が可能です。(例)FindElementByClass(sがない)
単一形の場合は、一番最初に出現した要素に対して処理を行います。
IE自動操作をではない表現のため、当方では基本使用していません。
SeleniumBasicについて
Internet Explorer11 のサポート期限が2022年6月までと、スクレイピング自体入れ替えていく必要があります。
今一番スムーズなのはSeleniumBasicを使用したスクレイピングと考えます。
但し、VBAでのネット記事は少なく困っている方も多いと思います。
弊社で代行開発も可能ですので、お気軽にご用命ください。
コメント