VBA:【Selenium】SeleniumBasicの基本的な使い方。ブラウザの操作、起動と検索
決まった手順の繰り返しになるので、自動で行えたらその時間を別のことに使えるので効率も上がります。
UiPathなどのRPAなどを使ってももちろんできますが、ここではVBAを使って行う方法を説明していきます。
◆Seleniumとは
Webブラウザ(Chromeなど)の操作を自動化するツールの一つです。
SeleniumのVBAでの始め方
以下の記事にインストールから設定までを書いていますのでご参考ください。
【基本】サイトの検索ボタンを使って検索する方法
以下では、chasou techのWebサイトを開いて、記事から「Selenium」を検索して表示させています。
※ブラウザのドライバのバージョンが異なっているとエラーになります。
ドライバは頻繁にアップデートされるので、その都度動かなくなるところが困りどころ。。
→VBAで自動更新処理を作って解決しました!以下記事をご覧ください。
VBA:【Selenium×Edge】ブラウザのドライバ(webdriver、edgedriver)のバージョンチェックと自動更新用VBAコード
【VBA×Selenium】Edge:ブラウザのドライバとSelenium Basicのブラウザのドライバのバージョンを比較して、異なるバージョンの場合は上書きする方法について
サンプルコード
ブラウザを起動し、茶窓のサイト”https://tech.chasou.com/”を開いて、検索ボックスに「Selenium」と入力し、「検索」ボタンを押すまでのコードです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
Private Sub ブラウザ起動_Click() Dim Driver As New Selenium.WebDriver 'Edgeの場合は「EdgeDriver」、Chromeの場合は「ChromeDriver」としても動きます。' With Driver .start "edge" '//Edgeの場合は"edge"、Chromeの場合は"chrome"' .Get "https://tech.chasou.com/" 'サイトを開きます。' '//検索枠に「Selenium」を入力します。' .FindElementByXPath("//*[@id=""search-3""]/form/label/input").SendKeys ("Selenium") '//「検索」ボタンをクリックします。' .FindElementByXPath("//*[@id=""search-3""]/form/input").Click End With Stop 'ブラウザが起動したら止めます。' '▼ブラウザを終了します。' Driver.Close Set Driver = Nothing End Sub |
◆Googleのトップページでの検索方法
Googleのトップページでの検索についてもサンプルコードを載せておきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Private Sub ブラウザ起動_Click() Dim Driver As New Selenium.WebDriver With Driver .start "chrome" '//Edgeの場合は"edge"、Chromeの場合は"chrome"' .Get "https://www.google.com/" 'サイトを開きます。' .FindElementByXPath("/html/body/div[1]/div[3]/form/div[1]/div[1]/div[1]/div/div[2]/input").SendKeys ("茶窓") '検索枠に「茶窓」を入力します。' .FindElementByXPath("/html/body/div[1]/div[3]/form/div[1]/div[1]/div[3]/center/input[1]").Click '「検索」ボタンをクリックします。' End With Stop 'ブラウザが起動したら止めます。' '▼ブラウザを終了します。' Driver.Close Set Driver = Nothing End Sub |
XPathの取得方法
XPathの取得方法については以下の記事に書いています。