Selenium Grid简单使用

2021-01-18  本文已影响0人  是立品啊

一、简介

二、环境部署

下载安装 Selenium Server 的 Jar 文件:selenium-server-standalone.jar
下载地址:http://selenium-release.storage.googleapis.com/index.html

2.1 启动hub

java -jar selenium-server-standalone.jar -role hub -maxSession 10 -port 4444

2.1.1参数说明

2.1.2 启动日志

$ java -jar selenium-server-standalone.jar -role hub -maxSession 10 -port 4444
23:25:09.606 INFO [GridLauncherV3.parse] - Selenium server version: 4.0.0-alpha-1, revision: d1d3728cae
23:25:09.698 INFO [GridLauncherV3.lambda$buildLaunchers$5] - Launching Selenium Grid hub on port 4444
2020-09-24 23:25:10.087:INFO::main: Logging initialized @739ms to org.seleniumhq.jetty9.util.log.StdErrLog
23:25:10.250 INFO [Hub.start] - Selenium Grid hub is up and running
23:25:10.250 INFO [Hub.start] - Nodes should register to http://192.168.31.53:4444/grid/register/
23:25:10.251 INFO [Hub.start] - Clients should connect to http://192.168.31.53:4444/wd/hub
启动成功后,浏览器打开地址:`http://localhost:4444/grid/console`

2.2 启动node

node节点可以与hub在同一台机器上运行,也可以在不同的机器上,需要注意的是,如果 Node 代理节点在其他机器,需要在对应 PC 上配置 JDK 环境运行 Selenium Server浏览器驱动

java -jar selenium-server-standalone.jar -role node -port 6666 -hub http://127.0.0.1:4444/grid/register -maxSession 2 -browser browserName=chrome,seleniumProtocol=WebDriver,maxInstances=2,platform=MAC
-Dwebdriver.chrome.driver=chromedriver.exe 

2.2.1 参数说明

2.2.2启动日志

$java -jar selenium-server-standalone.jar -role node -port 6666 -hub http://127.0.0.1:4444/grid/register
23:39:59.395 INFO [GridLauncherV3.parse] - Selenium server version: 4.0.0-alpha-1, revision: d1d3728cae
23:39:59.474 INFO [GridLauncherV3.lambda$buildLaunchers$7] - Launching a Selenium Grid node on port 6666
23:39:59.705 INFO [WebDriverServlet.<init>] - Initialising WebDriverServlet
23:39:59.773 INFO [SeleniumServer.boot] - Selenium Server is up and running on port 6666
23:39:59.773 INFO [GridLauncherV3.lambda$buildLaunchers$7] - Selenium Grid node is up and ready to register to the hub
23:39:59.810 INFO [SelfRegisteringRemote$1.run] - Starting auto registration thread. Will try to register every 5000 ms.
23:40:00.094 INFO [SelfRegisteringRemote.registerToHub] - Registering the node to the hub: http://127.0.0.1:4444/grid/register
23:40:00.144 INFO [SelfRegisteringRemote.registerToHub] - The node is registered to the hub and ready to use

三、测试

from time import sleep

from selenium.webdriver import Remote,DesiredCapabilities

# 指定Hub主机及浏览器驱动
driver = Remote(
    command_executor='http://192.168.183.1:4444/wd/hub',
    desired_capabilities=desired_capabilities=DesiredCapabilities.CHROME.copy())

driver.get('http://google.com')

sleep(10)

driver.quit()

运行上面的测试脚本,Hub 主节点会自动分配到满足条件的 Node 节点去运行

四、docker部署

4.1拉取镜像

使用 docker pull 命令下载下面 3 个镜像到本地:

1、selenium/hub:主节点镜像 hub

2、selenium/node-chrome:node 节点

3、selenium/node-chrome-debug:带有 VNC 服务端,便于观看执行步骤

# 主hub
docker pull selenium/hub

# node节点
docker pull selenium/node-chrome

# selenium/node-chrome-debug VNC Server
docker pull selenium/node-chrome-debug

4.2 运行容器

# 主hub
# -P:将容器端口映射到docker主机的一个随机端口上
# --name:重命名,便于管理
docker run -d -P --name hub_xag selenium/hub
# node节点
# --link:关联到hub主节点
docker run -d -p 5903:5900 --link hub_xag:hub --name node1 selenium/node-chrome
# chrome-debug容器
docker run -d -p 5900:5900 --link hub_xag:hub selenium/node-chrome-debug

4.3查看节点注册信息

使用 Chrome 打开通过 Docker 主机 IP + Hub 主节点映射的端口号组成的 URL

比如:http://127.0.0.1:4444/grid/console

4.4VNC Viewer,查看运行状态

输入 Docker 主机 IP + chrome-debug 映射在 Docker 主机的端口号,就可以实时查看 Docker 主机的运行情况

比如:http://127.0.0.1:5900

需要注意的是,第一次登陆默认的密码是:secret

上一篇 下一篇

猜你喜欢

热点阅读