Selenium Grid4 使用指南(三)

637 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第16天,点击查看活动详情

上面两节介绍了Selenium Grid4的三种使用方式:

本章来使用Docker运行Selenium Grid4hub/node

  • 首先在服务器上安装Docker环境(不是本章的重点,大家可自行进行搜索)

  • 登陆Docker Hub,搜索selenium就可以看到相关的镜像。我们主要用到这两个镜像,一个是hub服务,一个是包含chrome浏览器的Node节点。

  • 使用命令docker pull image_name拉取上面的上个镜像到服务器上,使用docker images查看当前服务上的镜像,如下:

基本用法

  • 使用命令docker network create grid创建网络供hub和node通信。

  • 使用命令docker run --name hub --net grid -d -p 54444:4444 selenium/hub启动hub,并将容器内的4444端口映射到54444。然后使用命令docker ps查看当前服务器运行的容器。

  • 使用命令docker run -d --net grid -e SE_EVENT_BUS_HOST=hub --shm-size=2g -e SE_EVENT_BUS_PUBLISH_PORT=4442 -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 --name chrome selenium/node-chrome启动节点。

  • 在浏览器上访问http://服务器IP:5444,可以看到节点已经注册成功,并且操作系统为Linux。

  • 使用命令docker run -d --net grid -e SE_EVENT_BUS_HOST=hub --shm-size=2g -e SE_EVENT_BUS_PUBLISH_PORT=4442 -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 --name chrome2 selenium/node-chrome可以再启动一个节点。在浏览器上再次访问http://服务器IP:5444,可以看到一个新节点已经注册成功,并且操作系统为Linux。

  • 如果想要查看容器内浏览器的运行情况,可以使用命令docker run -d --net grid -e SE_EVENT_BUS_HOST=hub --shm-size=2g -e SE_EVENT_BUS_PUBLISH_PORT=4442 -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -p 5900:5900 --name chrome3 selenium/node-chrome,通过-p参数将VNC端口5900暴露出来。在浏览器上再次访问http://服务器IP:5444,可以看到一个新节点已经注册成功,并且操作系统为Linux。

  • 官网下载VNC Viewer,根据提示进行安装。安装完成后,打开软件,使用服务器IP:5900连接到VNC(密码默认输入secret),可以看到容器内初始界面。

  • 跟上节一样,将下面的脚本执行三次
from selenium import webdriver
chrome_options = webdriver.ChromeOptions()

driver = webdriver.Remote(command_executor='http://服务器IP:5444', options=chrome_options)
driver.get("http://www.baidu.com")

可以看到三个节点全部在运行,如下:

再次连接VNC,可以看到对应的浏览器已经被打开了。