Edge/hromeでハイパーリンク(いわゆるリンク)をクリックしたいケースがあります。
よく使用するのはブログをさかのぼる為の「次へ」や「前へ」でも、aタグ仕様しています。
こちらを例に使用方法をお伝えします。
基本はfor eachで全ての要素をチェックする
Selenium「Edge/Chromeでsubmitボタンをクリックする」【エクセルマクロ】と考え方は一緒です。
「URL」を要素をチェックしてクリックするだけです。
HTML(Aタグ)のサンプル
//HTMLサンプル inputタグにaタグ(ハイパーリンク) <a href="https://vba-create.jp/category/kyoteivba/kyotei-manual/page/2/"> 次のページ </a> </div>
VBAでAタグをクリック
下記VBAコードサンプルのように、for eachで「送信」が含まれる文字を探して、クリックします。
Dim objTag as Object '■aタグをクリックする場合 For Each objTag In driver.FindElementsByTag("a") '■TagがaのText内に「次のページ」が含まれていたら、 If InStr(objTag.Text, "送信") > 0 Then '■■送信ボタンクリック objTag.Click Exit For End If Next
注意点
では、タグって何なの?という方はVBAではなく、HTMLを少し勉強が必要です。
HTMLタグ一覧を参照して、目的のタグを探してください。
これを理解しておかないとIE操作はできません。
基本的にEdge/Chrome操作でクリックするのは以下の2パターンです。
for eachでループするのはメモリがオーバーし、VBAがエラーを起こすのでは?と思われるますが、
そこまで時間がかかるわけではなく、エラーが起きるのは違う要因がほとんどだと考えます。
SeleniumBasicについて
Internet Explorer11 のサポート期限が2022年6月までと、スクレイピング自体入れ替えていく必要があります。
今一番スムーズなのはSeleniumBasicを使用したスクレイピングと考えます。
但し、VBAでのネット記事は少なく困っている方も多いと思います。
弊社で代行開発も可能ですので、お気軽にご用命ください。
コメント