VBA:【Selenium】Webスクレイピング。HTML要素の操作(Click・SendKeys・Clear・AsSelect.SelectBy)
Webスクレイピングをする際、ボタンをクリックしたり、検索枠に文字を入力したり、テーブルデータを取得したりしますが、Seleniumを使うことで普段行う作業を自動化することができます。
以下のように、XPathを使って取得した要素をクリックする場合は、「Click」メソッドを最後に付けることで対象の要素をクリックすることができます。
1 |
Driver.FindElementByXPath("//*[@id=""2016_anchor""]").Click |
◆操作メソッド
よく使う操作メソッドには以下のようなものがあります。
メソッド | 操作内容 |
Click | ボタンをクリックしたり、チェックボックスにチェックを入れる |
SendKeys | 検索枠等に情報を入力する |
Clear | 検索枠等に入力した情報をクリアする |
AsSelect.SelectBy | プルダウンを選択する |
◆Click
ボタンをクリックしたり、チェックボックスにチェックを入れたりします。
1 |
Driver.FindElementByXPath("//*[@id=""2016_anchor""]").Click |
◆SendKeys
検索枠等に情報を入力します。
1 2 |
'検索枠に「茶窓」を入力します。' Driver.FindElementByXPath("/html/div/div[2]/input").SendKeys ("茶窓") |
◆Clear
検索枠等に入力した情報をクリアします。
1 |
Driver.FindElementByXPath("/html/div/div[2]/input").Clear |
◆AsSelect.SelectBy
プルダウンを選択するコードは以下いくつか種類があります。
1 2 3 4 5 6 7 8 |
'(1)Indexを使う方法' Driver.FindElementByXPath("//*[@id=""d""]").AsSelect.SelectByIndex (2) '(2)Valueを使う方法' Driver.FindElementByXPath("//*[@id=""d""]").AsSelect.SelectByValue ("03") '(3)Textを使う方法' Driver.FindElementByXPath("//*[@id=""d""]").AsSelect.SelectByText ("5日") |
HTMLコードは以下のようになっていて、HTML要素は「id」=「d」です。
属性は、「index」では上から何番目か指定し、「value」なら「数字の文字列」、「text」なら「文字列」で選択するプルダウンの位置を指定しています。
■HTMLコードの例