Docker Selenium(1)構築サービスおよびchrome使用firefox
Docker Seleniumは、SeleniumをDockerで実行することができ、セットアップ時間を短縮し、各ブラウザのバージョンを独立させることができ、一定の隔離性を維持し、非常に良いテスト環境です.
docker-selenium公式ドキュメント
https://www.lfhacks.com/tech/selenium-docker
https://hub.docker.com/r/selenium/standalone-chrome/dockerfile
ミラーの紹介
selenium/hub:Grid Hub、空白のSeleniunサーバ、selenium/node-chrome:Chromeノードに相当し、Grid Hubを追加して使用する必要があります.selenium/node-firefox:Firefoxノードは、Grid Hubを追加する必要があります.selenium/node-chrome-debug:Chromeノードで、VNCサーバも含まれており、Grid Hubを追加する必要があります.selenium/node-firefox-debug:Firefoxノード、VNCサーバも含まれているのでGrid Hubを追加する必要があります
selenium/standalone-chrome:Chromeを含むSeleniunサーバは、直接呼び出すことができます.selenium/standalone-firefox:Chromeを含むSeleniunサーバで、直接呼び出すことができます.selenium/standalone-chrome-debug:Chromeを含むSeleniunサーバ、VNCサーバも含まれており、直接呼び出すことができます.selenium/standalone-firefox-debug:Chromeを含むSeleniunサーバ、VNCサーバも含まれており、直接呼び出すことができます.
使用
docker conposeメソッド
seleniumは公式にdocker composeメソッドを提供しており、直接使用すれば簡単に構築できます.
公式連結
構築成功
Python呼び出し
呼び出し方法は、ローカル構築selenium serverと同様であり、以下ではchromeを例に挙げる. Chromeオブジェクトを作成する
正常に呼び出されると、sleniumページでもchromeが使用されているのが表示されます.
Googleのトップページにアクセスし、ページタイトル を印刷してみます.現在のページを切り取るテスト
ブラウザ を解放
呼び出しを終了すると、sleniumページのchromeがカラーに戻ります.
もう1つのモード:Debug Mode
Docker Seleniumには、主に画面のあるseleniumを提供し、ブラウザが何をしているのかを直接見ることができます.Debug ModeはVNCサーバを使用して5900ポートを占有していますが、ポートごとに1つのノード(Chrome、Firefoxなど)しか実行できません.2つのノード以上を含めるには、異なるポートを公開する必要があります.5900:5900、5901:5900...
Docker Componentメソッド: seleniumページ へのアクセス
このページにはSelenium hubの状態が表示されており、VNCを見たい場合はDockerコンテナに入ってから見る必要があります.
VNCでブラウザが何をしているかを見る VNCソフト を取り付ける
推奨ツール無料VNC:ultravnc
ultravncダウンロードアドレス UltraVNC Viewer を開く
ダウンロードとインストールが完了したら、Docker内のVNCサーバーに接続します.クリック接続 入力パスワード
デフォルトパスワード:secret
プリセットにはパスワードがあります.パスワードを入力したくない場合は、コンテナ変数に接続成功 この画面を見るとVNCへの接続に成功しました
Python呼び出しスクリプトを作成し、selniumの実行状況をテストします. 画面のあるseleniumに が現れました
小結
docker seleniumはDockerを通じて構築された関係で、構築が非常に便利で迅速で、ここでは主に2つのモードの作成容器を紹介しました.1つはブラウザが見えるもので、1つは黙って実行されているもので、テストの実行速度も非常に速く、実体ホストよりもずっと順調になっているような気がしますが、長期的なテスト状況では、他の問題があるかどうか分かりません.
https://maliaotw.github.io/2018/06/08/Docker%20Selenium(1)%20%E6%90%AD%E5%BB%BA/
https://blog.csdn.net/weixin_39198406/article/details/85085505
https://www.jianshu.com/u/a70a89d3258f
docker-selenium公式ドキュメント
https://www.lfhacks.com/tech/selenium-docker
https://hub.docker.com/r/selenium/standalone-chrome/dockerfile
ミラーの紹介
selenium/hub:Grid Hub、空白のSeleniunサーバ、selenium/node-chrome:Chromeノードに相当し、Grid Hubを追加して使用する必要があります.selenium/node-firefox:Firefoxノードは、Grid Hubを追加する必要があります.selenium/node-chrome-debug:Chromeノードで、VNCサーバも含まれており、Grid Hubを追加する必要があります.selenium/node-firefox-debug:Firefoxノード、VNCサーバも含まれているのでGrid Hubを追加する必要があります
selenium/standalone-chrome:Chromeを含むSeleniunサーバは、直接呼び出すことができます.selenium/standalone-firefox:Chromeを含むSeleniunサーバで、直接呼び出すことができます.selenium/standalone-chrome-debug:Chromeを含むSeleniunサーバ、VNCサーバも含まれており、直接呼び出すことができます.selenium/standalone-firefox-debug:Chromeを含むSeleniunサーバ、VNCサーバも含まれており、直接呼び出すことができます.
使用
docker conposeメソッド
seleniumは公式にdocker composeメソッドを提供しており、直接使用すれば簡単に構築できます.
公式連結
docker-compose.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# To execute this docker-compose yml file use docker-compose -f up
# Add the "-d" flag at the end for deattached execution
version: "3"
services:
selenium-hub:
image: selenium/hub:3.12.0-boron
container_name: selenium-hub
ports:
- "4448:4444"
chrome:
image: selenium/node-chrome:3.12.0-boron
depends_on:
- selenium-hub
environment:
- HUB_HOST=selenium-hub
- HUB_PORT=4444
firefox:
image: selenium/node-firefox:3.12.0-boron
depends_on:
- selenium-hub
environment:
- HUB_HOST=selenium-hub
- HUB_PORT=4444
docker-compose up --build
docker-compose.yaml
で公開されている4448ポートを指定し、ページを開くと正常にアクセスでき、呼び出せるブラウザにはChromeとFirefoxがあります.Python呼び出し
呼び出し方法は、ローカル構築selenium serverと同様であり、以下ではchromeを例に挙げる.
1
2
3
4
5
6
7
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
browser = webdriver.Remote(
command_executor='http://192.168.8.22:4448/wd/hub',
desired_capabilities=DesiredCapabilities.CHROME,
)
正常に呼び出されると、sleniumページでもchromeが使用されているのが表示されます.
1
2
3
browser.get('http://www.google.com')
print(browser.title)
# Google
1
browser.save_screenshot("chrome.png")
1
browser.quit()
呼び出しを終了すると、sleniumページのchromeがカラーに戻ります.
もう1つのモード:Debug Mode
Docker Seleniumには、主に画面のあるseleniumを提供し、ブラウザが何をしているのかを直接見ることができます.Debug ModeはVNCサーバを使用して5900ポートを占有していますが、ポートごとに1つのノード(Chrome、Firefoxなど)しか実行できません.2つのノード以上を含めるには、異なるポートを公開する必要があります.5900:5900、5901:5900...
Docker Componentメソッド:
docker-compose up --build
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# To execute this docker-compose yml file use docker-compose -f up
# Add the "-d" flag at the end for deattached execution
version: '2'
services:
firefox:
image: selenium/node-firefox-debug:3.12.0-boron
volumes:
- /dev/shm:/dev/shm
depends_on:
- hub
environment:
HUB_HOST: hub
ports:
- "5900:5900"
chrome:
image: selenium/node-chrome-debug:3.12.0-boron
volumes:
- /dev/shm:/dev/shm
depends_on:
- hub
environment:
HUB_HOST: hub
ports:
- "5901:5900"
hub:
image: selenium/hub:3.12.0-boron
ports:
- "4450:4444"
このページにはSelenium hubの状態が表示されており、VNCを見たい場合はDockerコンテナに入ってから見る必要があります.
VNCでブラウザが何をしているかを見る
推奨ツール無料VNC:ultravnc
ultravncダウンロードアドレス
ダウンロードとインストールが完了したら、Docker内のVNCサーバーに接続します.
デフォルトパスワード:secret
プリセットにはパスワードがあります.パスワードを入力したくない場合は、コンテナ変数に
VNC_NO_PASSWORD: 1
を加えることができます.Python呼び出し
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.common.keys import Keys
browser = webdriver.Remote(
command_executor='http://192.168.8.22:4450/wd/hub',
desired_capabilities=DesiredCapabilities.CHROME,
)
browser.get("http://www.google.com")
browser.find_element_by_id("lst-ib").send_keys("python")
browser.find_element_by_name("btnK").send_keys(Keys.ENTER)
titles = browser.find_elements_by_xpath(".//h3[@class='r']//a")
print([i.text for i in titles])
browser.quit()
小結
docker seleniumはDockerを通じて構築された関係で、構築が非常に便利で迅速で、ここでは主に2つのモードの作成容器を紹介しました.1つはブラウザが見えるもので、1つは黙って実行されているもので、テストの実行速度も非常に速く、実体ホストよりもずっと順調になっているような気がしますが、長期的なテスト状況では、他の問題があるかどうか分かりません.
https://maliaotw.github.io/2018/06/08/Docker%20Selenium(1)%20%E6%90%AD%E5%BB%BA/
https://blog.csdn.net/weixin_39198406/article/details/85085505
https://www.jianshu.com/u/a70a89d3258f