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

推薦する

この記事ではJavaScriptのガベージコレクションの仕組みを説明します

目次1. 概要2. メモリ管理3. ガベージコレクション4. GCアルゴリズムの紹介5. 参照カウン...

MySQL Routerのインストールと展開

目次01 MySQLルーターの紹介MySQL Router とは何ですか? 02 MySQLルータの...

axios リクエストのカプセル化に基づく Vue アプリケーションのサンプルコード

目次axiosとは何ですか? Axios リクエストタイプ? Axiosはデフォルトのカスタム構成を...

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

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

ネイティブJSで禁止すべきメソッドの記述

目次ブロックレベル関数オブジェクトのプロトタイプを直接変更すると呼び出された人発信者評価ブロックレベ...

CSS3は遷移を高速化し、遅延させる

1. 速度制御機能を使用して、トランジション効果(加速、減速など)の速度曲線を制御します。速度制御機...

MySQLのインデックス

序文早速本題に入りましょう。これからお話しするのは次のマインドマップです。まずは印象をつかんでくださ...

Vueはシンプルな計算機を実装する

この記事では、参考までに、Vue の具体的なコードで簡単な計算機を実装する方法を紹介します。具体的な...

HTML の入力の readonly 属性と disabled 属性の違いについて簡単に説明します。

「読み取り専用」と「無効」はどちらも、ユーザーがフォーム フィールドの内容を変更できないようにしま...

IEではボタンが両側に伸びる

ボタン (input, button) を記述すると、IE では次のようになります。単語数が増えると...

HTML の POST リクエストにおける a タグの 2 つの使用法の分析

HTML POST リクエストで a タグを使用する 2 つの例を次に示します。 1. ajaxを使...

Linux の一般的な基本コマンドと使用方法

この記事では、一般的な基本的な Linux コマンドとその使用方法を例を使って説明します。ご参考まで...

IDEA が MySQL ポート番号占有に接続できない問題の解決方法

コマンドラインでMYSQLに正常にログインでき、NavicatもMySQLに正常に接続できますが、I...

MySQL の完全バックアップとクイックリカバリ方法

過去 15 日間のデータをバックアップするシンプルな MySQL 完全バックアップ スクリプト。バッ...

forEachでawaitが機能しない問題を解決する

1. はじめに数日前、プロジェクトでトラバーサルに使用したときに落とし穴に遭遇し、解決するのに 1 ...