Selenium VBAマクロ実践①

環境設定した後は実践編です。
Googleホームページから検索文字を入力して目的のホームページを開きます。
デベロップツールの表示
検索は簡単ですが、検索したい場所を抽出するSelectorを見つける方法を下記に明記します。
これが無いと何を探して良いのかわかりませんので覚えましょう。


その他ツールからデベロッパーツールを選択します。





選択すると現在のホームページのソースを見る事ができます。
Selectorコードの検索
デベロッパーツールから実際のSelectorを抽出する方法です。





ここが結構重要です。①~⑤の順番にしないと正確に目的のSelectorが抽出できません。実際のデータは非常に長いです。
ソースコード
Option Explicit
Sub BonyoshiOpen()
Dim Driver As New Selenium.WebDriver
Dim txt As String
'Chromブラウザーで開く
Driver.Start "chrome", "https://www.google.com/?hl=ja"
Driver.Get "/"
Driver.Wait 1000
'検索に値を入力
Driver.FindElementByCss("body > div.L3eUgb > div.o3j99.ikrT4e.om7nvf > form > div:nth-child(1) > div.A8SBwf > div.RNNXgb > div > div.a4bIc > input").SendKeys "ぼん吉のテクニカル教室"
Driver.FindElementByCss("body > div.L3eUgb > div.o3j99.ikrT4e.om7nvf > form > div:nth-child(1) > div.A8SBwf > div.FPdoLc.lJ9FBc > center > input.gNO89b").Click
Driver.Wait 1000
'検索の最初のURLに遷移
Driver.FindElementByCss("#rso > div:nth-child(1) > div > div > div > div:nth-child(1) > div > div > div.Z26q7c.UK95Uc.jGGQ5e.VGXe8 > div > a > div > div > div > cite").Click
Driver.Wait 1000
'ぼん吉のタイトルを得る
txt = Driver.FindElementByCss("#header > div.l-header__inner.l-container > div.l-header__logo > h1 > a").Text
Range("A1") = txt
'5秒待機
Driver.Wait 5000
Driver.Close
Set Driver = Nothing
End Sub



Option Explicit は関数定義のミスをなくすおまじないのようなコードです。必ず必要ではありませんが入れておくとミスが減ります。
実行イメージ





Driver.Start “chrome”, “https://www.google.com/?hl=ja”
Driver.Get “/”
この行で立ち上げたいURLを入力して起動します。





Driver.FindElementByCss(“body > div.L3eUgb > div.o3j99.ikrT4e.om7nvf > form > div:nth-child(1) > div.A8SBwf > div.RNNXgb > div > div.a4bIc > input”).SendKeys “ぼん吉のテクニカル教室”
この行で検索ボックスにテキストデータ(ほん吉のテクニカル教室)を送っています。



Driver.FindElementByCss(“body > div.L3eUgb > div.o3j99.ikrT4e.om7nvf > form > div:nth-child(1) > div.A8SBwf > div.FPdoLc.lJ9FBc > center > input.gNO89b”).Click
ここで検索ボタンをクリックしています。





実際の検索結果が表示されます。



Driver.FindElementByCss(“#rso > div:nth-child(1) > div > div > div > div:nth-child(1) > div > div > div.Z26q7c.UK95Uc.jGGQ5e.VGXe8 > div > a > div > div > div > cite”).Click
検索結果の最初の行をクリックしています。





目的のサイトを表示する事ができました。
コメント