持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第15天,点击查看活动详情
Selenium Grid官方文档 Selenium Grid 允许通过将客户端发送的命令路由到远程浏览器实例来在远程机器上执行 WebDriver 脚本。
Grid 的目标:
- 提供一种在多台机器上并行运行测试的简单方法
- 允许在不同的浏览器版本上进行测试
- 启用跨平台测试
本章将使用最新的 selenium grid4来进行演示,大家下载时注意下载的selenium grid的版本。
基础用法
- 从Oracle 官网下载JDK,并安装Java开发环境(不是本章的重点,本进行详情介绍,大家可自行搜索)
- 从官网下载selenium server。
- 通过命令
java -jar selenium-server-<version>.jar standalone启动
- 浏览器访问
http://192.168.1.7:4444,可以看到selenium Grid的可视化界面。可以看到目前已经检测到了Windows操作系统上的两个浏览器,Chrome和Firefox。
- 将代码修改如下:
from selenium import webdriver
chrome_options = webdriver.ChromeOptions()
driver = webdriver.Remote(command_executor='http://127.0.0.1:4444', options=chrome_options)
driver.get("http://www.baidu.com")
- 再次查看selenium grid可视化界面,可以看到刚创建的Session,如下:
使用过selenium grid3的伙伴应该很清楚,在3时,hub和node是分开的,在4中,他们被打包到了一个jar包内,使用standalone会同时启动node和hub。
hub和node
standalone启动的单个hub和node只能在单设备上允许,如果想要在不同的设备上启动,就需要分别启动hub和node。
- 通过命令
java -jar selenium-server-<version>.jar hub启动hub服务
- 通过命令
java -jar selenium-server-<version>.jar node --hub http://<hub-ip:port>启动node节点并注册到hub。(这里通过--port参数模拟多个节点)。
从日志可以看到node已经被成功添加到hub。
再次查看selenium Grid界面,就可以看到多个不同端口的node节点被添加进来了(实际使用过程中,可以在不同操作系统不同设备上启动node并添加到hub上)。
- 将上面的python脚本启动两次,可以看到创建了两个Session,并且使用的是不同node上的浏览器。
以上就是selenium grid4的基本用法,下节给大家介绍selenium grid4的基本架构以及提供的其他组件的用法~