まずは簡単なプログラムを動かしてみましょう。
Sub seleniumテスト()
Dim driver As New ChromeDriver
driver.Get ("https://www.yahoo.co.jp/")
driver.FindElementByName("p").SendKeys "Selenium"
driver.FindElementByXPath("//*[@id='wrapper']/header/section[1]/div/form/fieldset/span/button/span/span").Click
Stop
End Sub
YAHOOのサイトが立ち上がり、seleniumで検索できれば完了です。
Dim driver As New ChromeDriver
driver.Get ("https://www.yahoo.co.jp/")
この部分はクロームの使用してYAHOOを立ち上げるという部分です。URLの部分は使用したいサイトに応じて差し替えてください。
driver.FindElementByName("p").SendKeys "Selenium"
次にこの部分です。検索の入力BOXに"Selenium"と入力する部分です。
問題は「driver.FindElementByName("p").」の部分。pがどこから来たかです。
これはクロームの開発者モードを使用して調べます。
クロームでヤフーのサイトを開き、ページ内のどこかで右クリック、メニューが表示されたら検証をクリックします。
立ち上がりました。この開発者モードは全てのブラウザに搭載されており、実際にはどのブラウザを使用しても構いません。私は機能の豊富さと安定性からクローム版をお勧めします。
開発者モードの左上、四角に矢印が乗ったマークをクリック、その後に調べたい検索窓をクリックします。開発者モードの方に「name="p"」と表示されています。これでnameがわかりました。これで、
driver.FindElementByName("p").SendKeys "Selenium"
の部分がわかりました。
最後は検索ボタンを押す部分です。先ほどと同じように開発者モードで調べて見ましょう。
<span class="_3s3YPSCNUcgAFkPwVeRyfT"><span class="PHOgFibMkQJ6zcDBLbga8">検索</span></span>
このようになっています。残念ながらIDもNameもわからないですね。いくつか方法がありますが、今回はXPassを使ってみます。
開発者モードで青くなってい行を右クリック、Copy>Copy XPassと選びます。
メモ帳等を開き、貼り付けをしてみてください。
//*[@id="ContentWrapper"]/header/section[1]/div/form/fieldset/span/button/span/span
こうなれば成功です。これが検索ボタンのXPassです。
これをVBAのコードにすると、
driver.FindElementByXPath("//*[@id='wrapper']/header/section[1]/div/form/fieldset/span/button/span/span").Click
こうなります。コピペで貼るだけです。簡単ですね。
ここで一つ注意点。
"ContentWrapper"
この部分ですが、「”」を「’」に手入力で変更する必要があります。
これはVBAでSeleniumを使う場合特有の処理です。
今回はここまでにさせていただきます。SeleniumBasicはVBAによるIE操作と比較して習得、開発が非常に簡単なのですが、インストールや設定の負荷、情報が少なく習得が難しいという欠点を抱えています。
このブログでも可能な範囲書かせていただこうと思いますが、Python + Seleniumの情報は書籍やネット上にあふれており、基本的な使い方は変わらないため、こちらの情報も参考にすると良いかと思います。
Comentários