webdriver原理_Selenium Grid的原理、配置与使用

Selenium Grid工作原理

Selenium Grid实际它是基于Selenium RC的,而所谓的分布式结构就是由一个hub节点和若干个node代理节点组成。Hub用来管理各个代理节点的注册信息和状态信息,并且接受远程客户端代码的请求调用,然后把请求的命令转发给代理节点来执行。下面结合环境部署来理解Hub与node节点的关系。

Selenium Grid环境部署

1.下载Jar包

下载地址:http://selenium-release.storage.googleapis.com/index.html
与你使用的selenium 版本一致

1.下面是我自己在用的selenium版本

36e3a648938a49111af861380552a831.png

2.下面是我下载下来的Jar包

9339ab1d868a84216c74bbc325f593b2.png

3. chromedriver.exe与geckodriver.exe 在环境变量中,并分别运行下面的代码调试成功。
调试代码
#火狐浏览器
from selenium import webdriver
from time import sleep

#driver在环境变量中,此步可注释掉
driver =webdriver.Firefox(executable_path=r'D:\opt\geckodriver.exe')

driver.get('https://www.baidu.com/')

driver.find_element_by_id('su').click()

sleep(3)

#谷歌浏览器
from selenium import webdriver
from time import sleep

##driver在环境变量中,此步可注释掉
driver =webdriver.Chrome(executable_path=r'D:\opt\chromedriver.exe')

driver.get('https://www.baidu.com/')

driver.find_element_by_id('su').click()

sleep(3)

2.启动hub

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

3.启动node

java -jar selenium-server-standalone-3.141.0.jar -role node -hub http://localhost:4444/grid/register/ -port 5555

4.编写代码

#线程调用,执行代码
import time
import threading
from selenium import webdriver

def get(driver):
driver.get('https://www.baidu.com/')
driver.find_element_by_id('kw').send_keys('123')
driver.find_element_by_id('su').click()

def get_driver(browser):
cap=None
if browser == "chrome":
cap=webdriver.DesiredCapabilities.CHROME.copy()
elif browser == 'firefox':
cap = webdriver.DesiredCapabilities.FIREFOX.copy()
###学习的时候,看人家用的是端口是4444,这里我有个疑问,我的只有5555可用
return webdriver.Remote('http://127.0.0.1:5555/wd/hub',desired_capabilities =cap)

browsers=['chrome',"firefox"]
for i in browsers:
driver=get_driver(i)
threading.Thread(target=(get),args=(driver,)).start()
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值