Selenium Grid工作原理
Selenium Grid是基于Selenium RC的,而所谓的分布式结构就是由一个hub节点和若干个node代理节点组成。Hub用来管理各个代理节点的注册信息和状态信息,并且接受远程客户端代码的请求调用,然后把请求的命令转发给代理节点来执行。
Selenium Grid环境部署
1.下载selenium-server-standalone,从http://selenium-release.storage.googleapis.com/index.html 进行下载(版本要与selenium对应)
2.启动hub,命令:Java -jar selenium-server-standalone-x.xx.x.jar -role hub。
3.启动之后再打开一个cmd,输入java -jar selenium-server-standalone-x.xx.x.jar -role node -port 5555
,这是启动第一个node,指定端口5555
4.hub和node启动好之后我们在浏览器里输入http://127.0.0.1:4444/grid/console,打开grid的控制台:
5.grid_module.py
def grid():
d = {'http://127.0.0.1:4444/wd/hub': 'firefox', 'http://127.0.0.1:5555/wd/hub': 'internet explorer', }
return d
6.测试脚本
# encoding:utf-8
from selenium import webdriver
import time, os.path
import grid_module
for host, browser in grid_module.grid().items():
print (host,browser)
driver = webdriver.Remote(
command_executor=host,
desired_capabilities={
'platform': 'ANY',
'browserName': browser,
'version': '',
'javascriptEnabled': True
}
)
driver.get("https://www.baidu.com")
driver.find_element_by_id("kw").send_keys(u"中国")
driver.find_element_by_id("su").click()
time.sleep(3)
if driver.title == u"中国_百度搜索":
print("title匹配!")
else:
print("title不匹配!")
driver.close()
运行测试脚本后,就可以使用不同的浏览器来进行自动化脚本测试了