Selenium Grid分布式

一、基本认识:
分布式执行其实是将脚本转化成指令发送给hub,再由hub分发给node,然后node返回执行结果;所以一切打印和获取都会由执行指令的node返回给hub,然后返回给脚本执行地。
1、连接远程资源都需要host+port
2、selenium grid就是遵从第一点建立连接(协议)
3、hub主节点、node分支节点
	1-hub节点和node节点,没有固定要求的先后部署顺序
	2-hub\node是通过host+port进行衔接(交流沟通-->神经)
二、环境部署:
1、环境部署方式:
	1-本地部署
	2-容器部署(docker)
2、部署操作
	(1)下载selenium grid(稳定版)
	https://www.selenium.dev/downloads/
	(2)放到指定文件夹(自定义d://download)
	(3)切换到文件夹

在这里插入图片描述
在这里插入图片描述

3、命令行部署
	1-在命令行中切换在下载jar包所在目录:
	d:
	cd d://download
	
	2-注册hub\node:(不指定端口就默认)
	1)注册hub:java -jar <你的jar包> -role hub -port 4444
	2)注册node:java -jar <你的jar包> -role node -port 4445

4、json部署
	注册hub\node:
	1)注册hub:java -jar <你的jar包> -role hub hubConfig <hub的json配置文件> -debug
	2)注册node:java -jar <你的jar包> -role node nodeConfig <node的json配置文件> -debug

	

在这里插入图片描述

5、docker部署
	1-下载docker
	https://www.docker.com/
	2-安装docker(傻瓜式安装)
	3-运行docker
	4-在docker容器中下载各个节点的镜像(terminal里输入)1)docker pull selenium/hub  拉取hub节点的镜像
		2)docker pull selenium/node-chrome-debug  拉取node节点的镜像
		3)docker pull selenium/node-firefox-debug  拉取node节点的镜像
	5-启动镜像:
		1)启动hub:docker run -d -p 4444:4444 --name selenium-hub selenium/hub
		2)启动node:docker run -d --link selenium-hub:hub  selenium/node-chrome

在这里插入图片描述
拉取后的效果
在这里插入图片描述
启动镜像:
在这里插入图片描述
启动成功:
在这里插入图片描述
查看和修改IP
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6、使用:
import time
from selenium import webdriver



# hub主节点的url  http://192.168.11.1:4444/wd/hub
# docker/hub 172.17.0.3:5555
url = "http://192.168.11.1:4444/wd/hub"  
desired_capabilities = {
    "browserName":"chrome",  #指定运行的浏览器
    "version":"",        #指定版本
    "platform":"any",    #指定平台
    "javascriptEnabled":"true" #指定是否支持Js脚本
}

driver = webdriver.Remote(url,desired_capabilities=desired_capabilities)
driver.get("https://www.baidu.com")
driver.find_element("id","kw").send_keys("selenium grid")
driver.find_element("id","su").click()
time.sleep(2)
driver.get_screenshot_as_file("baidu.png")
driver.quit()

经常遇到的错误
1)浏览器驱动版本问题
浏览器驱动和浏览器版本不对应
2)hub节点没启动
会报错:selenium grid urllib3.exceptions.MaxRetryError
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XB_tonticc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值