WebDriverDownloadモジュール

本ページには広告が含まれています。

Selenium オブジェクトでブラウザ操作を行うためのWebDriverのダウンロードを行います。

WebDriver.Start メソッドでブラウザを起動する直前に記述することで、ブラウザのバージョンに合ったドライバーをダウンロードします。

直近にダウンロードしたブラウザのバージョンをINIファイルに記録しておくことにより、現在のブラウザのバージョンと同じ場合はダウンロード処理を行いません。

バージョンが同じでもドライバーの再ダウンロードを行いたい場合はforceTrueを指定します。

構文
WebDriverDownload.Chrome( bit64, force )
WebDriverDownload.Firefox( force )
WebDriverDownload.MsEdge( force )
引数
bit64 必須
Chromeブラウザが64bitの場合はTrue32bitの場合はFalseを指定。省略した場合、インストール先のフォルダパスから判断。
force 省略可
現在インストールされているドライバーとバージョンが一致しても強制的にインストール処理を行う場合、Trueを指定
戻り値

プログラム

UWSC

解説

    2行目
    UWSC
    3行目
    UWSC
    SeleniumBasicがインストールされているパスをfolderspecに代入します。
    4,14行目
    UWSC
    Google Chromeドライバーのダウンロード処理をする関数。
    5行目
    UWSC
    ChromeBrowserVersion関数でChromeブラウザのバージョンを取得しbrowserVersionに代入します。
    6行目
    UWSC
    WebDriverVersion.iniのChromeセクション、versionキーの値とbroswerVersionの値を比較し、バージョンが違うもしくはforceTrueの場合は以下に続く処理を続けます。バージョンが同じ、もしくはforceFalseの場合は処理を中断します。
    7行目
    UWSC
    bit64の値がTrueならば64Falseならば32bitに代入します。
    9行目
    UWSC
    ChromeDriverVersion関数を実行し、browserVersionの値からダウンロードするドライバーのバージョンを生成しdriverVersionに代入します。
    10行目
    UWSC
    ChromeDriverURL関数を実行し、driverVersionbitの値からドライバーのURLを生成し、driverURLに代入します。
    12行目
    UWSC
    InstallChromeDriver関数を実行し、driverURLbitの値からChromeのWebDriverのインストール処理を実行します。
    15-23行目
    UWSC
    Chromeブラウザのバージョンを返す関数です。レジストリのHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\chrome.exe\PathというキーからChromeブラウザがインストールされているパスを取得しpathに代入します。このときエラーが発生した場合はChromeブラウザがインストールされていないと判断し処理を中断します。Chromeブラウザのパスからコマンドプロンプトを使いバージョンを取得します。
    24,36行目
    UWSC
    Chromeブラウザのバージョンから対応するWebDriverのバージョンを取得する関数です。
    25行目
    UWSC
    バージョンからメジャーバージョンの部分を取得しmajorに代入します。
    26-30行目
    UWSC
    メジャーバージョンが115以降ならばhttps://googlechromelabs.github.io/chrome-for-testing/LATEST_RELEASE_" + major115より前ならhttps://chromedriver.storage.googleapis.com/LATEST_RELEASE_" + majorurlに代入します。
    31-35行目
    UWSC
    urlを開き、Webページのテキスト全体を戻り値として返します。
    37-47行目
    UWSC
    Chromeブラウザのバージョンとビット数からダウンロードするWebDriverのURLを取得します。
    48,56行目
    UWSC
    Chromeドライバーのインストール処理を行う関数です。
    49行目
    UWSC
    ダウンロードするZIPファイルのファイル名をchromedriver.zipにします。
    50行目
    UWSC
    driverURLに指定したURLのファイルをダウンロードします。folderspecがダウンロード先のフォルダ名、filenameがファイル名です。ダウンロードに成功した場合、そのZIPファイルを解凍します。
    51行目
    UWSC
    解凍したZIPファイルからchromedriver.exeのパスをpathに代入します。
    52-55行目
    UWSC
    ZIPファイルからpathのファイルをfolderspecにコピーし、ZIPファイルを削除します。

WebDriverとは

WebDriverはWebページの操作を自動化するためのインターフェイスです。Seleniumというブラウザを自動操作するためのライブラリとセットで使うため、Selenium オブジェクトを参考に事前にインストールしておいてください。

Seleniumを利用して書かれたプログラムはWebDriverを経由してブラウザの操作を行うのですが、ブラウザやそのバージョンに対応するWebDriverを用意する必要があります。そのためブラウザのアップデートでバージョンが変わるたびにWebDriverもインストールし直さなければならないため手間がかかります。WebDriverDownloadモジュールはそのWebDriverのダウンロード・インストールの処理を自動で行うためのプログラムです。

WebDriverのダウンロード

WebDriverをダウンロードする手順はブラウザごとに異なるためそれぞれ以下に示します。

Chrome

Chromeはブラウザのバージョンによってダウンロード先が異なります。

Ver.115以降(最新版)

Chrome for Testing availabilityを開いて一番上にある表のCannelの列のStable(安定版)Beta(ベータ版)Dev(デベロッパー版)Canary(カナリア版)の中からStableをクリックします。

img src="/wp-content/uploads/udf/webdriverdownload/Chrome for Testing.png" width="1366" height="768"]

リンクを選択するとページ内でStableの表がある位置に移動するので、Binary列にあるchromedriverの中からChromeブラウザのビット数に合わせて32bitならwin32、64ビットならwin64のどちらかに記載しているURLをコピー&ペーストして開きZIPファイルをダウンロードします。

Chrome for Testing Stable
Ver.115以降(特定のバージョン)

Ver.115以降の特定のバージョンのWebDriverをダウンロードするにはhttps://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.jsonのJSONファイルからWebDriverがあるURLを探し出します。

以下はリンク先のJSONファイルの一部を整形したものです。versions配列にはバージョンごとのデータが格納されています。downloadsキー内のchrome配列がOSごとのデータで、Windowsで32bitの場合はplatformキーがwin32、64bitの場合はplatformキーがwin64のurlキーの値がWebDriverのダウンロード先のURLです。

このURLをブラウザのアドレスバーに貼り付けるなどして開き、ZIPファイルをダウンロードします。

JSON
Ver.114以前

Downloads  |  ChromeDriver  |  Chrome for Developersを開き、Chromeブラウザと対応するバージョンのWebDriverを選択します。

ChromeブラウザのVer.70〜114のバージョンに対応しています。Ver.82はブラウザのリリース自体がキャンセルされたのでドライバーもありません。

ダウンロードするWebDriverのバージョンは、以下の<メジャーバージョン>にブラウザのメジャーバージョンを代入しリンクを開くことで確認できます。

プレーンテキスト

ブラウザのバージョンが70.0.3538.110の場合、 メジャーバージョンは一つ目のピリオドまでの数字で70となり以下のようになります。

プレーンテキスト

このURLを開いてダウンロードするWebDriverのバージョンを取得します。例えば上記のURLの場合、70.0.3538.97というバージョンが取得されます。

https://chromedriver.storage.googleapis.com/index.htmlの項目の中からLATEST_RELEASE_<メジャーバージョン>のファイルを選択することでも確認できます。

次にWebDriverのバージョンからWebDriverをダウンロードするためのURLを生成します。

プレーンテキスト

WebDriverのバージョンが70.0.3538.97の場合、URLは以下のようになります。

プレーンテキスト

このURLを開くとブラウザのバージョンに対応するchromedriver.exeのZIPフォイルがダウンロードされます。

WebDriverのインストール

ダウンロードしたZIPファイル(chromedriver-win32.zipchromedriver-win64.zip)を解凍しフォルダ内にあるchromedriver.exeをSeleniumをインストールしているフォルダ(%LOCALAPPDATA%\SeleniumBasic\)に移動することでChromeブラウザを起動できるようになります。

Chromeのインストール先のフォルダ

Ver.85より前からChromeをインストールしていた場合、64bitでも32bitと同じC:\Program Files (x86)\にインストールされています。

bit64の引数を省略すると正しく判定できない場合があるので、正しくドライバーがインストールできない場合はブール値を指定してください。

使い方

ChromeブラウザのWebDriverをダウンロード

ChromeブラウザとWebDriverのバージョンが一致しない場合、Chromeブラウザ(64ビット)のWebDriverをダウンロードします。バージョンが一致している場合ダウンロード処理は行いません。

UWSC

ChromeブラウザとWebDriverのバージョンが一致しない場合、Chromeブラウザ(32ビット)のWebDriverをダウンロードします。バージョンが一致している場合ダウンロード処理は行いません。

UWSC

FirefoxブラウザのWebDriverをダウンロード

FirefoxブラウザとWebDriverのバージョンが一致しない場合、FirefoxブラウザのWebDriverをダウンロードします。

UWSC

Microsoft EdgeブラウザのWebDriverをダウンロード

Microsoft EdgeブラウザとWebDriverのバージョンが一致しない場合、EdgeブラウザのWebDriverをダウンロードします。

UWSC

プログラム実行例

未読メールの本文からURLを抽出

UWSC
使用関数

参考文献

  1. [仕様変更] Chrome 64-bitの標準フォルダが64-bitフォルダに修正 | SC2 Insp.
  2. 「C:\Program Files」:2 - 無無無庵2
  3. Releases · mozilla/geckodriver · GitHub
  4. 各種Driverの取得方法について - hifive
  5. Downloads  |  ChromeDriver  |  Chrome for Developers
  6. ページが見つかりませんでした |
  7. https://google-chrome.jp.uptodown.com/windows/versions