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 の父子値転送に関する簡単な説明

推薦する

jQueryはフォントサイズ調整ケースを実装します

この記事では、フォントサイズを調整するためのjQueryの具体的なコードを参考までに紹介します。具体...

WeChatアプレットが連携メニューを実現

最近はコース設計を実現するために、フロントエンドも少しやっています。今日はいくつかの機能を実現するた...

効率的なMySQLページングの詳細な説明

序文通常、大量のデータを扱う MySQL クエリには「ページング」戦略が採用されます。ただし、ページ...

Linux ドメイン ネーム サービス DNS 設定方法

DNSとはDNS の正式名称は Domain Name System で、ドメイン名解決システムを意...

Vue ソースコード学習でレスポンシブ性を実装する方法

目次序文1. レスポンシブシステムの重要な要素1. データの変更を監視する方法2. 依存関係を収集す...

JavaScript配列についてさらに詳しく知るのに役立つ記事

目次1. 配列の役割: 2. 配列の定義: 1. コンストラクタを通じて配列を作成する2. リテラル...

Vueはカルーセルのフレームレート再生を実装します

この記事の例では、カルーセルのフレームレート再生を実現するためのVueの具体的なコードを参考までに共...

2 級コンピュータ試験のための MySQL の知識ポイントとよく使用される MYSQL コマンド

2級コンピュータ試験のMySQL知識ポイントの基礎、一般的なMYSQLコマンドは次のとおりです。よく...

MySql バッチ挿入の最適化 SQL 実行効率の例の詳細な説明

MySql バッチ挿入の最適化 SQL 実行効率の例の詳細な説明itemcontractprice ...

Nginx Httpモジュールシリーズにおけるautoindexモジュールの具体的な使用法

ブラウザ モジュールの主な機能は、http リクエスト ヘッダーの「User-Agent」の値とブラ...

MySQL 5.7 をインストールした後にコマンドライン ウィンドウを開くとクラッシュする問題の解決方法

序文最近、MySQL 5.7 をインストールしましたが、問題が見つかりました。コマンド ライン ウィ...

あまり多くのコードを書かずに、ハイパーリンクを使ってシンプルで美しいカスタムチェックボックスを実装できます。

今日ふと、HTML でチェックボックスのスタイルを変更できる範囲が限られていることと、チェックボック...

MySQLクライアントとサーバーのプロトコルの解釈

目次MySQL クライアント/サーバー プロトコルMySQL サーバーから高いパフォーマンスを得る必...

パフォーマンスの最適化を教える 52 個の SQL 文

1. クエリを最適化するには、テーブル全体のスキャンを避けてください。まず、where と orde...