selenium python grid
学习自动化一直都是在本机操作,感觉这样能够减少工作量确实很少。最近研究了一下分布式操作。
开始的想法是,我在一台机器上启动脚本,然后让脚本在不同机器的不同版本的浏览器上进行跑脚本。
需要准备的东西:
1、jdk,以及环境变量配置好。在cmd下运行javac如果没有报错就行。
2、python开发环境。
3、selenium 安装好
4、下载 selenium-server-standalone-2.45.0.jar的包。这个版本自己看,我用的是这个版本,主要是用46的报错
一切准备好了,我用的三台机器。60机器作为我跑脚本的机器,89、162都是平台。
第一、(我按照网上说的方法貌似有的失败。)最后我是在60这台机器上将在命令行cmd窗口切换到我jar包所在文件夹,然后执行命令:java -jar selenium-server-standalone-2.45.0.jar -role hub (java -jar selenium-server-standalone-2.45.0.jar -port 4000 -role hub -nodeTimeout 600) 他默认起的是4444端口,这个可以自己定义的,这里是启动中心节点,我认为就是在哪台机器作为跑脚本的机器。
第二、启动node:同样cmd切换到jar包目录。java -jar selenium-server-standalone-2.45.0.jar -10.2.4.60 -port 4002 -role webdriver -hub
http://10.2.4.60:4000/grid/register -browser browserName=firefox,platform=WINDOWS 这个指定了执行的浏览器以及平台的。可以不要-browser后面的。(在启动中心节点的时候启动了selenium server的)
第三部、在中心节点机器的浏览器中输入http://localhost:4000/grid/console 查看链接的信息,如果有node机器信息那么就正确了
第四部、联调,看在中心节点执行脚本能否在node机器上运行,我一直在这里纠结了很久都不行,直接贴事例代码:
__author__ = 'pc'
from selenium.webdriver import Remote
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
list =['http://10.2.4.89:4002/wd/hub','http://10.2.4.162:4001/wd/hub']
for host in list:
driver = Remote(command_executor=host,
desired_capabilities=DesiredCapabilities.FIREFOX)
driver.get('http://www.baidu.com')
driver.find_element_by_id('kw').send_keys('selenium python')
driver.find_element_by_id('su').click()
driver.quit()
我纠结了很久才调通的,还有很多需要扩展的地方,但是觉得只要调试通了一切都好说了。
selenium python grid的更多相关文章
- python爬虫积累(一)--------selenium+python+PhantomJS的使用(转)
阅读目录 一.Selenium介绍 二.爬虫为什么要用selenium? 三.PhantomJS介绍 四.PhantomJS安装 五.操作实战 六.在此推荐虫师博客的学习资料 selenium + p ...
- python爬虫积累(一)--------selenium+python+PhantomJS的使用
最近按公司要求,爬取相关网站时,发现没有找到js包的地址,我就采用selenium来爬取信息,相关实战链接:python爬虫实战(一)--------中国作物种质信息网 一.Selenium介绍 Se ...
- selenium + python自动化测试unittest框架学习(一)selenium原理及应用
unittest框架的学习得益于虫师的<selenium+python自动化实践>这一书,该书讲得很详细,大家可以去看下,我也只学到一点点用于工作中,闲暇时记录下自己所学才能更加印象深刻. ...
- selenium + python自动化测试环境搭建
selenium的在python平台的搭建: 搭建平台windows 准备工具如下: --------------------------------------------------------- ...
- Page Object Model (Selenium, Python)
时间 2015-06-15 00:11:56 Qxf2 blog 原文 http://qxf2.com/blog/page-object-model-selenium-python/ 主题 Sel ...
- selenium + python 多浏览器测试
selenium + python 多浏览器测试 支持库包 在学习 Python + Selenium 正篇之前,先来看下对多浏览器模拟的支持.目前selenium包中已包含webdriver,hel ...
- selenium + python 自动化测试环境搭建
selenium + python 自动化测试 —— 环境搭建 关于 selenium Selenium 是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操 ...
- <译>Selenium Python Bindings 5 - Waits
如今,大多数的Web应用程序使用AJAX技术.当页面加载到浏览器,页面中的元素也许在不同的时间间隔内加载.这使得元素很难定位,如果在DOM中的元素没有呈现,它将抛出ElementNotVisibleE ...
- <译>Selenium Python Bindings 2 - Getting Started
Simple Usage如果你已经安装了Selenium Python,你可以通过Python这样使用: #coding=gbk ''' Created on 2014年5月6日 @author: u ...
随机推荐
- 201521123013 《Java程序设计》第8周学习总结
1. 本章学习总结 2. 书面作业 Q1.List中指定元素的删除(题目4-1) 1.1 实验总结 while(list.contains(str)) list.remove(str); Q2.统计文 ...
- 201521123039 《java程序设计》第八周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 总结: 1.集合可以动态修改大小,但是不可以存放基本数据类型: 2.java中任何对象都是is-a Objec ...
- 201521123023《java程序设计》第三周学习总结
1. 本周学习总结 2. 书面作业 1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; p ...
- 201521123089 《Java程序设计》第3周学习总结
1. 本周学习总结 初学面向对象,会学习到很多碎片化的概念与知识.尝试学会使用思维导图将这些碎片化的概念.知识组织起来.请使用纸笔或者下面的工具画出本周学习到的知识点.截图或者拍照上传. 2. 书面作 ...
- 控制结构(7) 程序计数器(PC)
// 上一篇:最近最少使用(LRU) // 下一篇:线性化(linearization) 程序的每一行都是一个状态,对应的行指令.同步的情况下同一个pc一直自增,异步的时候,分裂出一个新的子pc,独立 ...
- man page里面函数后面的括号中的数字代表的含义。
Linux下最通用的领域及其名称及说明如下:领域 名称 说明 1 用户命令, 可由任何人启动的. 2 系统调用, 即由内核提供的函数. 3 例程, 即库函数. 4 设备, 即/dev目录下的特殊文件. ...
- 如何使用fiddler抓取https请求(PC和移动端)
最近做一个抓取移动端app接口,并执行评论,收藏的接口功能测试.怎么搞/(ㄒoㄒ)/~~ 按照老思路试一试,第一步还是要用fiddler来帮忙获取接口信息! 一.基本的抓取http请求设置: 1.cm ...
- Java通过链表实现队列
class LinkedQueue<T> { /** * 队列大小,由构造函数初始化 */ private int maxSize; /** * 队头 */ private Node fr ...
- jQuery中的常用内容总结(一)
jQuery中的常用内容总结(一) 前言 不好意思(✿◠‿◠),由于回家看病以及处理一些其它事情耽搁了,不然这篇博客本该上上周或者上周写的:同时闲谈几句:在这里建议各位开发的童鞋,如果有疾病尽快治 ...
- 如何保存或读取数据(到android的data目录)利用context获取常见目录可优化代码
读取用户信息 当然这里可以有多种返回值 非硬性