介绍
介绍
selenium/hub和selenium/node-chrome
这是一个hub和node组成的多节点处理中心,它可以将多个Chrome浏览器集中到一起进行任务处理,可以实现给执行相同任务的Chrome浏览器扩容的目的。
拉取镜像
selenium/hub
selenium/node-chrome
启动hub容器
先启动hub镜像,使用GRID_MAX_SESSION设置开启的最大会话数量。为了后面的node方便连接福哥给这个容器加到了bridge2网络里面了。因为我们的selenium访问的是这个hub容器,所以福哥将它的4444端口映射到了宿主机的9515端口上面。
docker run -tid --name selenium-hub -h selenium-hub \
-e GRID_MAX_SESSION=10 \
--memory 128m --memory-swap -1 --net bridge2 -p 9515:4444 selenium/hub

启动信息里的XPUB端口和XSUB端口请记住,后面会用到它们!
启动node容器
接下来启动node镜像,这里的SE_EVENT_BUS_HOST就是上面hub的名称,SE_EVENT_BUS_PUBLISH_PORT就是hub的XPUB端口,SE_EVENT_BUS_SUBSCRIBE_PORT就是hub的XSUB端口。同样的福哥将这个容器加到了bridge2网络里面了。
docker run -tid --name selenium-node-chrome -h selenium-node-chrome \
-e SE_EVENT_BUS_HOST=selenium-hub \
-e SE_EVENT_BUS_PUBLISH_PORT=4442 \
-e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \
--memory 1g --memory-swap -1 --net bridge2 selenium/node-chrome

可以看到,我们的节点添加成功了!
测试
这个和单机版本一样,没有监视的功能,它是用来跑程序的~
# set opts
# chrome = webdriver.Chrome(options=opts)
chrome = webdriver.Remote("http://192.168.2.88:9515/wd/hub", options=opts)

总结
今天福哥带着童鞋们学习了selenium的Docker版本的Chrome浏览器环境的搭建的技巧,通过这个Docker的镜像可以让我们更加方便地管理我们的selenium运行环境。
通过节点版本的镜像,我们还可以将我们的程序要执行的任务进行分布式的部署,提高执行效率!