一、安装单个Chrome环境

docker pull selenium/standalone-chrome-debug
docker run -d -p 4444:4444 -p 5900:5900  --shm-size 2g selenium/standalone-chrome-debug

vnc://localhost:5900 密码默认为secret

 

二、docker搭建selenium grid 分布式环境

1.获取镜像

docker pull selenium/hub

docker pull selenium/node-chrome

docker pull selenium/node-chrome-debug

2.运行容器

启动hub

docker run -d -p 4444:4444 -e GRID_MAX_SESSION=100 --name hub selenium/hub

启动node

docker run -d -p 5555:5555 -e NODE_MAX_INSTANCES=5 -e NODE_MAX_SESSION=5 --shm-size=2g --link hub:hub --name node1 selenium/node-chrome

启动chrome-debug

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

 

三、安装VNC Viewer

下载地址:https://www.realvnc.com/en/connect/download/viewer/

打开后输入访问的机器IP,会要求输入密码,默认密码为 secret

 

测试脚本

from time import sleep
from selenium import webdriver

class TestWeb:
    def setup_class(self):
        self.driver = webdriver.Remote(command_executor='http://192.168.32.252:4444/wd/hub',
                                       desired_capabilities={'browserName': 'chrome'})

    def test_ui_web(self):
        self.driver.get('https://www.baidu.com/')
        print("start run")
        sleep(3)
        self.driver.get_screenshot_as_file("img1.png")

    def teardown_class(self):
        self.driver.quit()
        print("end...")

 

四、问题

外网访问docker 里的selenium 服务不通

cmd 执行:
netsh interface portproxy add v4tov4 listenport=4444 listenaddress=172.16.100.1 connectport=4444 connectaddress=192.168.99.100
注:listenaddress=172.16.100.1为windows本机ip地址
connectaddress=192.168.99.100为linux服务器ip地址