docker 下实现 selenium grid

前言:做 Web 自动化的同学都知道 selenium grid 非常好用,但是环境配置特别麻烦,很多人都躺在了环境搭建。那么有没有更简单的方式呢,答案是肯定的,今天我们就用 docker 来完成它,希望对大家有帮助。

一、环境准备
  1. 准备一台 Linux 服务器(云服务器、自建 Linux 服务器都可以)
  2. 在 Linux 服务器上安装 docker
  3. docker 安装就不讲了,照着官网的命令来就可以了,很简单的。
二、准备开工

第一步:拉取 docker 官方镜像

拉取 hub 镜像:docker pull selenium/hub

拉取 Chrome 浏览器镜像:docker pull selenium/node-chrome

第二步:启动 Hub 节点的 docker

docker run -p 5555:4444 -d --name hub selenium/hub

-d:后台运行容器

-p 5555:4444:将宿主机端口 5555 与容器端口 4444 做映射

image.png

第三步:启动 Node 节点的 docker

docker run -P -d --link hub:hub --name Chrome selenium/node-chrome

-P:暴露默认端口

-d:后台运行容器

--link:链接 hub 容器

image.png

第四步:验证环境搭建是否成功

浏览器访问:http://192.168.1.66:5555/grid/console

看到有你映射的浏览器版本和图标就成功了

image.png

第五步:上代码
import time
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

driver = webdriver.Remote(command_executor='http://192.168.1.66:5555/wd/hub',desired_capabilities=DesiredCapabilities.CHROME)
driver.get('https://www.baidu.com')
print("跑起来吧......")
time.sleep(2)
print("获取百度的title:",driver.title)
driver.quit()
print("跑完了......")

脚本截图如下:

image.png

回帖
请输入回帖内容 ...