top of page
執筆者の写真まあさ

SeleniumBasicの使い方①

まずは簡単なプログラムを動かしてみましょう。


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


この部分はクロームの使用して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


bottom of page