docker 下实现 selenium grid

本贴最后更新于 915 天前,其中的信息可能已经时移俗易

前言:做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/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

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