付録B. ドライバー管理
第1章で述べたように、ドライバー管理には、ダウンロード、セットアップ、メンテナンスの3つのステップがある。手作業によるドライバー管理は、労力の点でコストがかかり、保守性に関して問題がある可能性がある。このため、本書のすべての例では、WebDriverManager を使用して、このプロセスを自動化し、自動維持する。完全性を期すため、この付録では、手動ドライバ管理における関係するステップ(ダウンロード、セットアップ、メンテナンス)についても説明する。
WebDriverManager:自動ドライバー管理
WebDriverManagerは、オープンソースのJava ライブラリであり、Selenium WebDriverに必要なドライバ(chromedriver、 geckodriver、msedgedriverなど)を自動化された方法で管理する。WebDriverManager は、Chrome、Firefox、Edge、Opera、Chromium、Internet Explorer という異なるブラウザ用のマネージャセットを提供する。
WebDriverManagerは内部的に解決アルゴリズムを実行し、各ブラウザが必要とするドライバを管理する。このアルゴリズムは、これらのドライバーを自動的に発見し、ダウンロードし、セットアップし、維持することを目的としている。
図 B-1は、WebDriverManager が実装する手法の文脈で、このアルゴリズムを表している。各マネージャー(例:chromedriver() 、firefoxdriver() など)に対して、解決アルゴリズムは以下のように動作する:
-
WebDriverManagerは、ローカルマシンにインストールされているブラウザのバージョン(例えばChrome)を発見しようとする。そのために、、コマンド・データベースと呼ばれる内部知識データベースを使用する。このデータベースには、ブラウザのバージョン(例:Linuxの
google-chrome --version)を発見できるシェルコマンド(オペレーティングシステムの違い)のリストが含まれている。 -
発見されたメジャー・ブラウザ・バージョン(例:Chrome 89)を使用して、WebDriverManagerは正しいドライバ・バージョン(例:chromedriver 89.0.4389.23)を決定する。このプロセスをバージョン解決と呼び出す。このプロセスを容易にするために、いくつかのドライバメンテナ(すなわち、chromedriverとmsedgedriver)は、単純なテキストファイル(例えば、https://chromedriver.storage.googleapis.com/LATEST_RELEASE_89)を使用して、オンラインリポジトリで特定のドライババージョンを公開している。残念ながら、この情報は、geckodriverやoperadriverのような他のドライバでは利用できない。このため、WebDriverManagerは、ブラウザとドライバのバージョン間の関連付けを保持するために、別の内部知識データベース(バージョンデータベースと呼ばれる)を使用する。バージョン・データベースとコマンド・データベースの両方が、GitHubに保存されたオンライン・マスター・リファレンスを使って値を同期している。
-
WebDriverManagerは、ローカルオペレーティングシステム(Windows、Linux、またはmacOS)用の特定のドライバをダウンロードし、 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access