Selenium Manager の 2023 年 10 月の状況
カテゴリ
Selenium Manager は開発計画を継続しています。通常どおり、最新リリースである 0.4.13 および 0.4.14 (それぞれ Selenium 4.13 および 4.14 に同梱) では、これまで報告された問題を修正しました。これらのリリースでは、問題は Windows の自己解凍アーカイブ (SFX) からの Firefox バイナリの抽出、および構成ファイル (se-config.toml
) と環境変数 (例: SE_BROWSER
) を介した詳細構成に関連していました。さらに、これらの最近のリリースには、以下で説明するように、新機能が含まれています。
キャッシュ内で最適なドライバーを検索する
デフォルトでは、Selenium Manager は、Selenium が必要とする適切なドライバーとブラウザーを検出、ダウンロード、および維持するために、オンラインエンドポイント (たとえば、Chrome for Testing JSON API や Firefox product-details JSON API など) にリクエストを送信する必要があります。ダウンロードされたアーティファクトはキャッシュ (デフォルトでは ~/.cache/selenium
) に保存され、そこから再利用されます。
ドライバーの解決手順をより堅牢にするために、バージョン 0.4.13 以降、Selenium Manager には、エラーが発生した場合にキャッシュ内のドライバーを特定する新機能が含まれています。これにより、Selenium Manager でネットワークリクエスト (またはその他の機能) が失敗した場合、キャッシュ内のドライバーの特定を試みます。この機能は、Selenium Manager の最終目標である Selenium セッションを適切に作成するための最善のソリューションを提供することを目的としています。また、この機能は、Selenium Grid 用のドライバーを特定する際のエクスペリエンス向上にも役立ちます。
環境変数を使用した Selenium Manager バイナリの特定
Selenium Manager 0.4.13 に関連する次の機能は、Selenium バインディング (つまり、Java、JavaScript、Python、.Net、および Ruby) に実装されています。Selenium 4.13.0 以降、Selenium バインディングでは、SE_MANAGER_PATH
という環境変数を使用して Selenium Manager バイナリを特定できます。この変数が設定されている場合、バインディングはその値をローカルファイルシステム内の Selenium Manager パスとして使用します。この機能により、ユーザーは Selenium Manager のカスタムコンパイルを提供できます。たとえば、デフォルトのバイナリ (Windows、Linux、および macOS 用にコンパイル) が特定のシステム (Linux の ARM64 など) と互換性がない場合などです。
Edge の自動管理
Selenium Manager 0.4.14 には、Edge の自動管理が含まれています。このブラウザーは、Chrome と Firefox に続いて、この機能で念頭に置いていた最後のブラウザーです。
この機能は、macOS および Linux 用の Chrome および Firefox と同じ方法で実装されています。言い換えれば、Selenium Manager を使用すると、最新の Edge バージョン (つまり、stable、beta、dev、canary) および古いバージョン (例: 115、116 など) を自動的に管理 (つまり、検出、ダウンロード、およびキャッシュ) できます。ダウンロードされたバイナリは、通常どおり、Selenium キャッシュに保存されます。次の出力コマンドは、macOS (最初のスニペット) および Linux (2 番目のスニペット) でのこの機能を示しています。
./selenium-manager --browser edge --debug --force-browser-download
DEBUG msedgedriver not found in PATH
DEBUG Checking edge releases on https://edgeupdates.microsoft.com/api/products
DEBUG Required browser: edge 117.0.2045.40
DEBUG Downloading edge 117.0.2045.40 from https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/6e65d9ef-0bb9-4636-8d9e-2b1b9d16149d/MicrosoftEdge-117.0.2045.40.pkg
DEBUG edge 117.0.2045.40 has been downloaded at /Users/boni/.cache/selenium/edge/mac64/117.0.2045.40/Microsoft Edge.app/Contents/MacOS/Microsoft Edge
DEBUG Reading msedgedriver version from https://msedgedriver.azureedge.net/LATEST_RELEASE_117_MACOS
DEBUG Required driver: msedgedriver 117.0.2045.40
DEBUG Downloading msedgedriver 117.0.2045.40 from https://msedgedriver.azureedge.net/117.0.2045.40/edgedriver_mac64.zip
INFO Driver path: /Users/boni/.cache/selenium/msedgedriver/mac64/117.0.2045.40/msedgedriver
INFO Browser path: /Users/boni/.cache/selenium/edge/mac64/117.0.2045.40/Microsoft Edge.app/Contents/MacOS/Microsoft Edge
./selenium-manager --browser edge --debug --browser-version beta
DEBUG msedgedriver not found in PATH
DEBUG edge not found in PATH
DEBUG edge beta not found in the system
DEBUG Checking edge releases on https://edgeupdates.microsoft.com/api/products
DEBUG Required browser: edge 118.0.2088.11
DEBUG Downloading edge 118.0.2088.11 from https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-beta/microsoft-edge-beta_118.0.2088.11-1_amd64.deb
DEBUG edge 118.0.2088.11 has been downloaded at /home/user/.cache/selenium/edge/linux64/118.0.2088.11/msedge
DEBUG Reading msedgedriver version from https://msedgedriver.azureedge.net/LATEST_RELEASE_118_LINUX
DEBUG Required driver: msedgedriver 118.0.2088.11
DEBUG Downloading msedgedriver 118.0.2088.11 from https://msedgedriver.azureedge.net/118.0.2088.11/edgedriver_linux64.zip
INFO Driver path: /home/user/.cache/selenium/msedgedriver/linux64/118.0.2088.11/msedgedriver
INFO Browser path: /home/user/.cache/selenium/edge/linux64/118.0.2088.11/msedge
ただし、この機能は Windows では同様に実装できません。その理由は、Windows 用の Edge インストーラーが Microsoft Installer (MSI) ファイルとして配布されており、管理者権限で実行するように設計されているためです。MSI ファイルから Edge バイナリを抽出しようとしましたが、不可能のようです (問題をまとめた Stack Overflow の投稿 を参照してください)。結局のところ、見つかった唯一の解決策は、MSI インストーラーを使用して Windows に Edge をインストールすることであり、そのためには管理者権限が必要です。
したがって、Windows で管理者以外のセッションで Selenium Manager を使用して Edge をインストールしようとすると、次のような警告メッセージが表示されます。
./selenium-manager --debug --browser edge --browser-version beta
DEBUG msedgedriver not found in PATH
DEBUG edge not found in PATH
DEBUG edge beta not found in the system
WARN There was an error managing edge (edge can only be installed in Windows with administrator permissions); using driver found in the cache
INFO Driver path: C:\Users\boni\.cache\selenium\msedgedriver\win64\118.0.2088.17\msedgedriver.exe
ただし、Windows で管理者権限で Selenium Manager を実行すると、Edge (stable、beta、dev、canary、および古いバージョン) を自動的に検出、ダウンロード、およびインストールできます。
./selenium-manager --debug --browser edge --browser-version beta
DEBUG msedgedriver not found in PATH
DEBUG edge not found in PATH
DEBUG edge beta not found in the system
DEBUG Checking edge releases on https://edgeupdates.microsoft.com/api/products
DEBUG Required browser: edge 118.0.2088.17
DEBUG Downloading edge 118.0.2088.17 from https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/7adec542-f34c-4dea-8e2a-f8c6fab4d2f3/MicrosoftEdgeBetaEnterpriseX64.msi
DEBUG Installing MicrosoftEdgeBetaEnterpriseX64.msi
DEBUG edge 118.0.2088.17 is available at C:\Program Files (x86)\Microsoft\Edge Beta\Application\msedge.exe
DEBUG Required driver: msedgedriver 118.0.2088.17
DEBUG msedgedriver 118.0.2088.17 already in the cache
INFO Driver path: C:\Users\boni\.cache\selenium\msedgedriver\win64\118.0.2088.17\msedgedriver.exe
INFO Browser path: C:\Program Files (x86)\Microsoft\Edge Beta\Application\msedge.exe
Chromium のサポート
Chromium は、Windows、Linux、および macOS 用の zip ファイルとして配布されるポータブルバイナリとしてリリースされています (Chromium ダウンロードページ を参照)。それにもかかわらず、Chromium が実際にシステムにインストールされているケースがあります。これは、たとえば、次のように atp
や snap
などのパッケージマネージャーを介して Chromium をインストールする場合に、Linux システムで発生します。
sudo snap install chromium
したがって、0.4.14 以降、Selenium Manager は Chrome が検出されない場合に PATH 内の Chromium バイナリを探します。次のスニペットは、Chrome が利用できないが、Chromium が snap
を介してインストールされている Linux マシンでこの機能がどのように機能するかを示しています。
./selenium-manager --browser chrome --debug
DEBUG chromedriver not found in PATH
DEBUG Found chromium in PATH: /snap/bin/chromium
DEBUG Running command: /snap/bin/chromium --version
DEBUG Output: "Chromium 117.0.5938.149 snap"
DEBUG Detected browser: chrome 117.0.5938.149
DEBUG Required driver: chromedriver 117.0.5938.149
DEBUG chromedriver 117.0.5938.149 already in the cache
INFO Driver path: /home/user/.cache/selenium/chromedriver/linux64/117.0.5938.149/chromedriver
INFO Browser path: /snap/bin/chromium
次のステップ
Selenium Manager 向けに最初に計画されたすべての機能を実装する段階に近づいています。開発活動の状況は、Selenium Manager プロジェクトダッシュボード で追跡できます。