Docker ベースの Selenium 分散環境の構築

Docker ベースの Selenium 分散環境の構築

1.画像をダウンロードする

docker pull selenium/hub
docker pull selenium/node-firefox
docker pull selenium/node-chrome

注: selenium/node-firefox と selenium/node-chrome はどちらもヘッドレスです。

リアルタイム実行インターフェースを表示するには、次の 2 つの画像のいずれかを使用する必要があります。

docker pull selenium/スタンドアロン-chrome-debug
docker pull selenium/スタンドアロン-firefox-debug

2. ハブノードのDockerを起動する

docker run -p 4444:4444 -d --name hub selenium/hub

パラメータの説明:

  • run: イメージを実行してコンテナを作成します。
  • -p 4444:4444 : コンテナ内のポートをマップします。
  • -d: バックグラウンドで実行
  • --name: コンテナ名。ここではコンテナハブと呼びます。

3. NodeのDockerを起動する

docker run -P -d --link hub:hub --name firefox selenium/node-firefox
docker run -P -d --link hub:hub --name chrome selenium/node-chrome

またはデバッグインターフェースを備えたノード

docker run -d -p 5900:5900 --link hub:hub selenium/node-chrome-debug

パラメータの説明:

--link は、エイリアスが hub であるコンテナへのリンクです。

4. VNCをインストールして設定する

VNC (Virtual Network Console) は、仮想ネットワーク コンソールの略です。これは優れたリモート コントロール ツール ソフトウェアであり、UNIX および Linux オペレーティング システムに基づく無料のオープン ソース ソフトウェアであり、強力なリモート コントロール機能を備え、効率的で実用的です。

ダウンロードアドレス: https://www.realvnc.com/en/connect/download/viewer/

5. テストコード

Selenium Grid サービスを使用するには、webdriver.Remote メソッドを使用してサービスに接続し、必要な機能である desired_capbilities を渡す必要があります。サンプルスクリプトは以下のとおりです。

時間からインポートスリープ
セレンからWebDriverをインポート


ドライバー = webdriver.Remote(
コマンド実行者 = 'http://192.168.99.100:4444/wd/hub',
必要な機能 = {'ブラウザ名': 'chrome'}
)

ドライバー.get('https://www.baidu.com')
print("実行を開始")
睡眠(1)
print(ドライバー.タイトル)
ドライバー終了()
print("終了...")

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Docker で Selenium グリッド分散環境を構築する実用的な方法
  • 自動ヘルスレポートを実現するDocker+Selenium方式
  • Selenium+testng を使用して Docker で Web 自動化を実現する方法
  • Docker+Selenium Grid に基づく技術アプリケーションをテストするためのサンプル コード

<<:  クリーンなXHTML構文

>>:  Vue3 の父子値転送に関する簡単な説明

推薦する

W3C標準に準拠したHTML標準で注意すべき点を詳細に解説

XML/HTML コードコンテンツをクリップボードにコピー<!DOCTYPE html PUB...

echarts と vue.js を統合する際に発生するいくつかの問題の概要

序文現在、私は Beetlex のデータ分析プラットフォームに取り組んでいます。この製品の開発では、...

mysql IS NULL インデックスケースの説明を使用する

導入MySQL の SQL クエリ ステートメントで is null、is not null、!= ...

MYSQLの文字セット設定方法(端末の文字セット)の詳しい説明

序文ターミナルを使用してデータベースまたはテーブルを作成するたびに、文字セットが latin1 であ...

ネイティブ CSS で無限テキストカルーセルを実装する一般的な方法

テキストカルーセルは私たちの日常生活で非常に一般的です。スーパーマーケットや実店舗の入り口には、テキ...

Nginx 構成検出サービスのステータスを実装する方法

1. チェックステータスモジュールがインストールされているかどうかを確認します。 [root@loc...

vue v-for ループ オブジェクトの属性

目次1. ループオブジェクト内の値2. ループオブジェクト3. キーと値のループ1. ループオブジェ...

CentOSにDockerをインストールする方法

ここでは比較的簡単なインストール方法のみを紹介します。 1. yumを使用してインストールするyum...

ウェブサイト構築経験概要

<br />注目を集めるウェブサイトを作成するには、どのような原則に従うべきでしょうか?...

overflow:autoの使い方の詳しい説明

本文に入る前に、オーバーフローとフレックスレイアウトの使い方をいくつか紹介します。 overflow...

Linux tac コマンドの実装例

1. コマンドの紹介tac (cat の逆順) コマンドは、ファイルの内容を行単位で逆順に出力します...

Vueはツリーテーブルを実装する

この記事では、ツリーテーブルを実装するためのVueの具体的なコードを例として紹介します。具体的な内容...

HTML で相対パスを使用してディレクトリのすべてのレベルのファイルを取得する方法の詳細な説明

相対パスの概念現在のファイルの場所を参照ポイントとして使用して、ターゲット ファイルへのパスを確立し...

Windows Server のインストール後にワイヤレスとオーディオが機能しない問題を解決する

1. ワイヤレスPowerShell を実行し、次のコマンドを入力します。 install-wind...

CocosCreatorオブジェクトプールの使い方

目次序文:特定の操作ステップ1: プレハブを準備するステップ2: オブジェクトプールを初期化するステ...