コンテナへのSelenium Gridのインストール
最終更新日 - 17年2025月XNUMX日
この方法を使用すると、事前構成されたイメージを使用して Selenium Grid をインストールしたり、コンテナーに Selenium GRID を手動でインストールして、インストール中に追加の設定を構成したりすることができます。
プロバイダーから入手できる次の事前構成済みイメージを使用して、Selenium Grid を Docker コンテナーにインストールできます。
- SeleniumGRIDハブイメージ
詳細については、を参照してください。 セレン/ハブ Docker ドキュメントより。 - SeleniumGRIDノードイメージ
詳細については、を参照してください。 セレン/ノードハブ Docker ドキュメントより。 - スタンドアロンのChromeイメージ
詳細については、を参照してください。 セレン/スタンドアロンクロム Docker ドキュメントより。
Kubernetes クラスターに Selenium Grid をインストールすることもできます。
デフォルトのDocker構成
Docker経由でSelenium Gridをスタンドアロンとしてセットアップする場合、以下の設定オプションを使用できます。これらのオプションは、コンテナの起動時に環境変数として設定されます。例えば、 SE_NODE_MAX_SESSIONS および SE_NODE_SESSION_TIMEOUTはDockerコンテナによってデフォルト値が与えられており、明示的に上書きする必要があります。その他の設定オプションは、 SE_OPTS 環境変数。これはデフォルト値を持たない構成オプションをすべて包含します。
| Details | 例: | |
| セッションリクエストのタイムアウト | この設定は、スタンドアロンDockerコンテナの起動時に構成されます。セッションリクエストのタイムアウトは、リクエストがセッションキュー内で利用可能なノードを待機する秒数を決定します。デフォルトは300秒です。再試行はXNUMX秒ごとに行われます。セッションリクエストのタイムアウトをXNUMXに設定すると、リクエストはキュー内に無期限に残ります。 ハブおよびSessionQueueの環境変数を介してこれらの値をオーバーライドすることができます( SE_SESSION_REQUEST_TIMEOUT および SE_SESSION_RETRY_INTERVAL)。 たとえば、500秒のタイムアウトは SE_SESSION_REQUEST_TIMEOUT=500 2秒の再試行間隔は SE_SESSION_RETRY_INTERVAL=2.このオプションは、追加オプションとして–session-request-timeoutをに渡すことで設定できます。 SE_OPTS DockerHubコンテナを起動するときの環境変数。 | $ docker run -d -p 4444:4444 -e SE_OPTS='--session-request-timeout 20' selenium/standalone-chrome:4.0 |
| 最大セッション | この設定は、スタンドアロンDockerコンテナの起動時に行われます。最大セッション数の設定は、リクエストを処理できるブラウザセッションの数を決定します。この設定を利用可能なプロセッサ数よりも多くすると、リソース不足によりセッションが失敗する可能性があります。 ChromeとEdgeのスタンドアロンDockerコンテナの両方で、最大セッション数の設定はデフォルトで 1.この設定を変更するには、 SE_NODE_MAX_SESSIONS スタンドアロン Docker コンテナを起動するときの環境変数。 | $ docker run -d -p 4444:4444 -e SE_NODE_MAX_SESSIONS=4 selenium/standalone-edge:4.0 |
| ノードセッションタイムアウト | この設定は、テスト要求によってセッション スロットが取得された後、スロットが解放されるまでにセッションがアクティビティなしでアイドル状態を維持できる時間を制御します。 ChromeとEdgeのスタンドアロンDockerコンテナの両方で、この設定はデフォルトで 300 秒です。デフォルトを上書きするには、 SE_NODE_SESSION_TIMEOUT Node Docker コンテナを起動するときの環境変数。 | $ docker run -d -p 4444:4444 -e SE_NODE_SESSION_TIMEOUT=10 selenium/standalone-edge:4.0 |
DockerコンテナにSelenium Gridを手動でインストールする
注意: 以下のコマンドで使用される値は例のみであり、説明目的に使用されます。
- コマンド プロンプトを開き、次のコマンドを入力して Docker ネットワークを作成します。
$ docker network create grid- Selenium Hub を起動するには、次のコマンドを実行します。
$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:latest- 環境変数を使用して Chrome ノードを起動するには、次のコマンドを実行します。
$ docker run -d --net grid --name selenium-chrome -e SE_EVENT_BUS_HOST=selenium-hub -e SE_EVENT_BUS_PUBLISH_PORT=4442 -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium/node-chrome:4.0.0- エッジノードを起動するには、次のコマンドを実行します。
$ docker run -d --net grid --name selenium-edge -e SE_EVENT_BUS_HOST=selenium-hub -e SE_EVENT_BUS_PUBLISH_PORT=4442 -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium/node-edge:93.0-edgedriver-93.0-grid-4.0.0Docker コンテナのデフォルト設定を変更する場合は、コンテナ ID を識別し、次のような開始コマンドを実行してコンテナを再起動する必要があります。
#find the container id’s (not running)
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
75bca4385216 selenium/node-edge:93.0-edgedriver-93.0-grid-4.0.0-rc-1-prerelease-20210823 "/opt/bin/entry_poin…" 10 days ago Exited (255) 6 minutes ago 5900/tcp selenium-edge
77615a7ada1c selenium/node-chrome:4.0 "/opt/bin/entry_poin…" 10 days ago Exited (255) 6 minutes ago 5900/tcp selenium-chrome
b838fe090610 selenium/hub:4.0 "/opt/bin/entry_poin…" 10 days ago Exited (255) 6 minutes ago 0.0.0.0:4442-4444->4442-4444/tcp, :::4442-4444->4442-4444/tcp selenium-hub
#start the containers
$ docker start 75bca4385216 77615a7ada1c b838fe090610
75bca4385216
77615a7ada1c
b838fe090610
#now they’re running
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
75bca4385216 selenium/node-edge:93.0-edgedriver-93.0-grid-4.0.0-rc-1-prerelease-20210823 "/opt/bin/entry_poin…" 10 days ago Up 14 seconds 5900/tcp selenium-edge
77615a7ada1c selenium/node-chrome:4.0 "/opt/bin/entry_poin…" 10 days ago Up 13 seconds 5900/tcp selenium-chrome
b838fe090610 selenium/hub:4.0 "/opt/bin/entry_poin…" 10 days ago Up 9 seconds 0.0.0.0:4442-4444->4442-4444/tcp, :::4442-4444->4442-4444/tcp selenium-hub