その他

selenium BasicのWebDriverバージョン管理について[No61]

投稿日:2020年10月6日 更新日:

スポンサーリンク

seleniumBasicを用いるプログラムの保守性を高めるポイントに「WebDriverのバージョンを管理する」があると思います。

Edge、chrome、ie、firefoxなどのブラウザのバージョンが上がるごとに、最新のWebDriverにダウンロードし設定していかなくてはなりません。

その作業を管理しやすくできないか検討してみました。

行いたいこと

  • 古いWebDriverも変更せず持っておきたい。
  • WebDricerの差し替えを手動ではなく自動でしたい。
  • 各種ドライバー(ChromeDriver、EdgeDriver、FirefoxDriver、IEDriver、OperaDriver、PhantomJSDriver)で対応したい。

プログラム

このプログラムの場合はEdgeDriver仕様になっています。

「Dドライブ」>「Selenium」>「WebDriver」>「Microsoft_Edge」にWebdriverのバージョン毎のフォルダを用意し、Webドライバー起動前に「AppData\Local\SeleniumBasic」にコピペされます。


Public Sub test()
    'コピー元(このファイルをコピーして)
    Dim driverCopyTargetPath_edge As String
    driverCopyTargetPath_edge = "D:\Selenium\WebDriver\Microsoft_Edge\verXXX\msedgedriver.exe"
    If Dir(driverCopyTargetPath_edge) = "" Then Exit Sub

    'コピー先(このファイルパスにペーストする)
    Dim driverOriginPath_edge As String
    driverOriginPath_edge = Environ$("LOCALAPPDATA") & "\SeleniumBasic\edgedriver.exe"
    If Dir(driverOriginPath_edge) = "" Then Exit Sub

    'FileCopy コピーの元, コピーする先
    FileCopy driverCopyTargetPath_edge, driverOriginPath_edge
    
    Dim driver As New WebDriver
    With driver
        .Start "MicrosoftEdge"
        .Get "http://www.yahoo.co.jp/"
        .Window.Maximize
    End With
End Sub

備考1

このプログラムに行きつくまでWebドライバーの起動先を変更する方法を探していました。

「Setbinaryを用いることで行ける」と思っていましたが、結局はSetbinaryで指定できるのはWebブラウザの実行場所のパスと分かりました。このことについては「AppData\Local\SeleniumBasic」の「Selenium.chm」のヘルプファイルで確認できます。※start,getなどのウェブDriverを利用する場合は、「AppData\Local\SeleniumBasic」に必ずwebDriverがある必要があります。

次のサイトで紹介されているコードは素晴らしく、上で紹介したコードとは異なる方法でドライバー管理ができそうです。

https://www.ka-net.org/blog/?p=10666

備考2

seleniumbasic(セレニウムベーシック)はVBAで動作します。

共有PC(共有機、共有パソコン)で複数のユーザーがプログラムを作成している場合、Dドライブのように他のユーザーでも手の届く場所にWebDriverを管理しておくと良いと思います。

最後までお付き合いいただきありがとうございます!

この情報が誰かの役にたてれば幸いです。

スポンサーリンク

タグ

-その他

© 2021 BookALittle