安裝docker
yum install -y yum-utils
device-mapper-persistent-data
lvm2
yum-config-manager
–add-repo
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce -y
Create a Docker Network
docker network create grid
下載鏡像
hub
docker pull selenium/hub:latest
chrome
selenium/node-chrome:latest
運行鏡像
docker run -d -p 4442-4444:4442-4444 --net grid --restart: always --name selenium-hub selenium/hub:latest
docker run -d -p 5900:5900 --net grid -e SE_EVENT_BUS_HOST=selenium-hub
–restart: always
–shm-size=“2g”
-e SE_EVENT_BUS_PUBLISH_PORT=4442
-e SE_EVENT_BUS_SUBSCRIBE_PORT=4443
-e SE_NODE_SCREEN_WIDTH=1280
-e SE_NODE_SCREEN_HEIGHT=800
-e SE_NODE_MAX_SESSIONS=5
selenium/node-chrome:latest
VNC登錄:
Vnc Server:IP:5900
password:secret
test
import time
from selenium.webdriver.chrome.options import Options
from selenium import webdriver# 定義遠程瀏覽器的地址
remote_url = "http://10.1.2.218:4444"# 定義瀏覽器配置
chrome_options = Options()# 添加所需的瀏覽器選項
#chrome_options.add_argument('--headless') # 設置無頭模式
chrome_options.add_argument('--disable-gpu') # 禁用 GPU 加速# 創建遠程瀏覽器實例
driver = webdriver.Remote(command_executor=remote_url, options=chrome_options)# 將瀏覽器窗口最大化
driver.maximize_window()# 打開指定的網頁
driver.get("https://www.baidu.com")
time.sleep(2)
driver.save_screenshot('screenshot1.png')
print("截圖完成")# 關閉瀏覽器
driver.quit()
docker-compose.yml文件:
version: '3'
services:selenium-hub:image: selenium/hub:latestports:- 4442-4444:4442-4444networks:- gridrestart: alwaysselenium-node-chrome:image: selenium/node-chrome:latestenvironment:- SE_EVENT_BUS_HOST=selenium-hub- SE_EVENT_BUS_PUBLISH_PORT=4442- SE_EVENT_BUS_SUBSCRIBE_PORT=4443- SE_NODE_SCREEN_WIDTH=1280- SE_NODE_SCREEN_HEIGHT=800- SE_NODE_MAX_SESSIONS=5shm_size: 2gports:- 5900:5900networks:- gridrestart: alwaysnetworks:grid:
說明:
這個Docker Compose文件定義了兩個服務:selenium-hub和selenium-node-chrome。selenium-hub服務使用selenium/hub:latest鏡像,并將端口4442-4444映射到主機的相同端口。selenium-node-chrome服務使用selenium/node-chrome:latest鏡像,并設置了事件總線主機、事件發布和訂閱端口、屏幕寬度和高度以及最大會話數等環境變量。它還將共享內存大小設置為2GB(shm_size: 2g)。
這兩個服務都連接到grid網絡,以允許容器之間的通信。
在與docker-compose.yml文件相同的目錄中運行docker-compose up -d,容器將在后臺啟動,您將擁有一個具有指定配置的Selenium Grid環境。
注意:在使用此YAML文件之前,請確保已在系統上安裝了Docker Compose。