SeleniumとVBAでググってみる

前回、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”).Click

MsgBox “exit?”

End Sub

キーワード入力をして、即検索ボタンをクリックさせたら
表示されていませんとエラーが返ってきた。

グーグルサジェストの表示待ちをしている最中は
ボタンが表示されていないようですね。
キーワード入力後0.5秒待機してからボタンクリックするようにしました。

 

コメント

  1. […] のHPを開く→検索ボックス入力→ボタンクリックまでは、このHP様を参照しました。これをもとに今回の検索入力部分を作成しています。SeleniumとVBAでググってみる(引用元:LogicalCreation様) […]