XpathでContainsを利用して「特定文字列を含む要素」をクリックする
ブラウザからXpathで要素を指定したい場合に、固定であれば問題ないのですが、
動的に作成され、ランダムな情報の場合にContainsを使用することで、
特定文字列を含む要素で処理が可能です。
「特定文字列を含む要素」をクリックするサンプルコード
Dim driver As New Selenium.WebDriver Public Sub sample() '■chrome かEdgeどちらかを選択。 driver.Start "chrome" '"edge" '■HPを開く driver.Get "https://vba-create.jp" '■imgタグのalt属性に「競艇」が含まれるものをクリック driver.FindElementByXPath("//img[contains(@alt,'競艇')]").Click '■imgタグのsrc属性に「uploads/2018/11/」が含まれるものをクリック(上記と結果は一緒) 'driver.FindElementByXPath("//img[contains(@src,'uploads/2018/11/')]").Click End Sub
Webページ内のソース
<a href="https://vba-create.jp/kyoteivba/"> <img decoding="async" loading="lazy" class="size-large wp-image-149" src="https://vba-create.jp/wp/wp-content/uploads/2018/11/2195bdcb3e42f2dde4f207b01d1b6025_m-2-1024x327.jpg" alt="競艇自動投票画像" width="1024" height="327" srcset="https://vba-create.jp/wp/wp-content/uploads/2018/11/2195bdcb3e42f2dde4f207b01d1b6025_m-2-1024x327.jpg ~一部省略~ </a>
関連記事
- Selenium「Edge/ChromeでXPathを使用し要素をクリックする」
- Selenium「Edge/Chromeでid要素やName要素がなくてもボタンクリックをする」
- VBAでEdge/Chromeを操作する機能のまとめ(逆引き目次)【Selenium】
SeleniumBasicについて
Internet Explorer11 のサポート期限が2022年6月までと、スクレイピング自体入れ替えていく必要があります。
今一番スムーズなのはSeleniumBasicを使用したスクレイピングと考えます。
但し、VBAでのネット記事は少なく困っている方も多いと思います。
弊社で代行開発も可能ですので、お気軽にご用命ください。
コメント