前回、VBAでSeleniumをセットアップまで行ったので
今回は実際にChromeを起動して、グーグル検索をしてみます。
ggrksと言われたらExcelを起動する斜め上の対応が出来るようになりますね。
Chromeの起動(URL表示)と終了
Dim driver As New ChromeDriver
‘起動(URL表示)
driver.Get “https://www.google.com”‘終了
driver.Quit
グーグルのトップページを表示して、
Chromeを閉じるプログラム。
最後のQuitを書かなくても、VBAで起動したChromeはプログラム実行が終わると終了されます。
Getで別のURLへ遷移させる事も可能。
ログイン処理後、特定のページへ遷移するなどかな。
入力と検索
今回はキーワード入力のテキストボックスに値入力と、
[Google 検索]をクリックする動作を行います。
Seleniumではウェブページのコントロールを特定させて、
それに対する操作をしていくので
テキストボックスコントロールの特定と、
[検索]ボタンの特定をする必要があります。
idやnameが設定されているコントロールであれば、
id検索やname検索を行いコントロールを特定させます。
idやnameが設定されていない。または動的に設定されている場合は
タグセレクタや、クラスセレクタを使って特定させていきます。
今回のケースはどちらもnameが設定されていたので、
それを利用します。
’検索キーワード入力
driver.FindElementByName(“q”).SendKeys (“HOGE”)‘Google検索ボタンをクリック
driver.FindElementByName(“btnK”).Click
※id、name、クラスなどはChromeの開発者ツールを使います
完成版
Public Sub hoge()
‘chrome を立ち上げてグーグルで検索実行
Dim driver As New ChromeDriver‘起動(URL表示)
driver.Get “https://www.google.com”‘検索キーワード入力
driver.FindElementByName(“q”).SendKeys (“HOGE”)‘サジェスト表示分を加味して待機
driver.Wait (500)‘Google検索ボタンをクリック
driver.FindElementByName(“btnK”).ClickMsgBox “exit?”
End Sub
キーワード入力をして、即検索ボタンをクリックさせたら
表示されていませんとエラーが返ってきた。
グーグルサジェストの表示待ちをしている最中は
ボタンが表示されていないようですね。
キーワード入力後0.5秒待機してからボタンクリックするようにしました。
コメント
[…] のHPを開く→検索ボックス入力→ボタンクリックまでは、このHP様を参照しました。これをもとに今回の検索入力部分を作成しています。SeleniumとVBAでググってみる(引用元:LogicalCreation様) […]