Selenium(Edge/Chrome)

Edge/ChromeでXpathでContainsを利用して「特定文字列を含む要素」をクリックする【Selenium】【ExcelVBA】

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>

 

関連記事

SeleniumBasicについて

Internet Explorer11 のサポート期限が2022年6月までと、スクレイピング自体入れ替えていく必要があります。
今一番スムーズなのはSeleniumBasicを使用したスクレイピングと考えます。

但し、VBAでのネット記事は少なく困っている方も多いと思います。
弊社で代行開発も可能ですので、お気軽にご用命ください。

コメント

タイトルとURLをコピーしました