一、selenium grid简介

selenium grid可以同时在不同机器上测试不同浏览器,包含一个hub和多个node。node会发送配置信息到hub,hub记录并跟踪每一个node的配置信息,同时hub会接受到即将被执行的测试用例及其相关信息,并通过这些信息自动选择可用的且符合浏览器与平台搭配要求的node,node被选中后,测试用例所调用的selenium命令就会被发送到hub,hub再将这些命令发送到指定给该测试用例的node,之后由node执行测试。

图 1. Selenium Grid2 的机制

二、环境准备

1、

 A、在不同的测试集群机上,分别安装不同类型的浏览器和相应的驱动。并配置好环境变量(将浏览器驱动driver配置进PATH变量中)。

 B、安装java的jre环境并配置环境变量。

2、selenium-server-standalone-XX.XX.jar 下载

在https://selenium-release.storage.googleapis.com/index.html找到适配的版本并将其放到pc的某一个目录下;

3、进入放置selenium-server-standalone-XX.XX.jar的目录,启动Hub(192.168.0.41):

(不管是要使用WebDriver功能的网格还是RC功能的网格还是同事使用两者,都是使用selenium-server-standalone 的jar文件来启动节点。命令如下:)

java -jar selenium-server-standalone-3.10.0.jar -role hub

在pc1的浏览器内打开:http://192.168.0.41:4444/grid/console  可以查看Hub状态。也就是说Grid默认启动端口是4444,如果想切换为其他端口,则加-port参数。比如要切换为8888:

java -jar selenium-server-standalone-3.10.0.jar -role hub  -port 8888

4、进入放置selenium-server-standalone-XX.XX.jar的目录,启动Node(192.168.0.42):

java -jar selenium-server-standalone-2.27.0.jar -role node -hub http://192.168.0.41/grid/register

同样的,也可以使用-port切换node端口,默认端口是5555. 
此处的node节点,也可以作为一个单机的远程节点存在,并同时支持RC,WebDriver。浏览器输入http://192.168.0.42/wd/hub可以看到session信息。

然后,同样的启动其它ip的Node节点。

打开浏览器:http://192.168.0.41:4444/grid/console ,可以看到注册的节点、

5、

四、环境测试

编写python脚本:

# coding=utf-8
from selenium import webdriver
import os chrome_driver = os.path.abspath(r"C:\software\chromedriver")
os.environ["webdriver.chrome.driver"] = chrome_driver
chrome_capabilities = {
"browserName": "chrome", # 浏览器名称
"version": "", # 操作系统版本
"platform": "ANY", # 平台,这里可以是windows、linux、andriod等等
"javascriptEnabled": True, # 是否启用js
"webdriver.chrome.driver": chrome_driver
}
driver = webdriver.Remote("http://node_ip:5555/wd/hub", desired_capabilities=chrome_capabilities)
# driver.set_window_size(1280,720)
driver.get("http://www.baidu.com")
print(driver.title)
driver.quit()

node_ip  需要修改成自己的node ip地址;

成功运行结果如下图:

node端日志:

最新文章

  1. C语言中如何判断文件是否存在
  2. 从零开始山寨Caffe·拾:IO系统(三)
  3. 未能添加对***.dll的引用 问题解决方法
  4. HotApp
  5. (转载)C++文件读写函数之——fopen、fread和fwrite、fgetc和fputc、fgets和fputs、ftellf和fseek、rewind
  6. nginx+php-fpm 502 bad gateway
  7. PHP 易出问题记录
  8. python通过excel对数据库插入数据
  9. Ubuntu 14.04下Redis安装报错:“You need tcl 8.5 or newer in order to run the Redis test”问题解决
  10. 【Android 多媒体开发】 MediaPlayer 网络视频播放器
  11. 1.1专题介绍「深入浅出ASP.NET Core系列」
  12. 使用Swagger自动生成API文档
  13. CentOS 7卸载Docker
  14. 将文件中的内容读取到map中,并排除不需要的关键字然后输出
  15. 如何快速找到某个研究领域的所有SCI期刊
  16. 【转载】C#之玩转反射
  17. dedecms如何增加自定义字段
  18. codevs 5971 打击犯罪
  19. ubuntu下如何查看软件安装目录以及安装版本
  20. Python内置字典;dict ,set

热门文章

  1. tomcat 服务添加到系统服务
  2. spring笔记(二)
  3. WebApp之Meta标签总结
  4. fzu 2246(ac 自动机)
  5. C&C++——段错误(Segmentation fault)
  6. bzoj4145 AMPPZ2014 The Prices 状压dp
  7. Dilworth定理证明
  8. bzoj 1201[HNOI2005]数三角形 1202 [HNOI2005]狡猾的商人 暴力 权值并查集
  9. Lesson 3
  10. C#三层中的分页