selenium grid 搭建
hub端
Step1: 下载 selenium-server-standalone-x.xx.x.jar
我下载的是:selenium-server-standalone-2.44.0.jar
下载地址: http://selenium-release.storage.googleapis.com/index.html
Step2: 新建 hub.bat
内容: java -jar selenium-server-standalone-x.xx.x.jar -role hub
我的是: java -jar selenium-server-standalone-2.44.0.jar -role hub
Step3: 启动hub
双击 hub.bat,即可启动hub。
备注: selenium-server-standalone-x.xx.x.jar 必须和 hub.bat在一个路径下。
node端
Step1: 下载 selenium-server-standalone-x.xx.x.jar
我下载的是:selenium-server-standalone-2.44.0.jar
下载地址: http://selenium-release.storage.googleapis.com/index.html
Step2: 下载浏览器driver
如果测试环境是IE浏览器,下载IEDriverServer.exe
下载地址: http://selenium-release.storage.googleapis.com/index.html
如果测试环境是Chrome浏览器,就下载chromedriver.exe
下载地址: http://chromedriver.storage.googleapis.com/index.html
如果测试环境是Firefox浏览器,就直接安装Firefox即可,但是要记住安装路径,后边要配置。
Step3: 新建defaultNode.json
内容如下:
{ "capabilities": [ { "browserName": "firefox", "maxInstances": 5, "seleniumProtocol": "WebDriver" }, { "browserName": "chrome", "maxInstances": 5, "seleniumProtocol": "WebDriver" }, { "platform": "WINDOWS", "browserName": "internet explorer", "maxInstances": 5, "seleniumProtocol": "WebDriver" } ], "configuration": { "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy", "maxSession": 5, #node启动的端口以及IP地址 "port": 5555, "host": 127.0.0.1, "register": true, "registerCycle": 5000, #hub启动的端口以及IP地址 "hubPort": 4444, "hubHost": 127.0.0.1 } }
Step4: 新建node.bat
如果节点想启动IE: java -jar selenium-server-standalone-x.xx.x.jar -role webdriver -nodeConfig defaultNode.json -Dwebdriver.ie.driver=.\IEDriverServer.exe
.\IEDriverServer.exe 为IE driver的放置路径,我的node.bat和IE driver在一个文件夹,所以是.\IEDriverServer.exe。
如果节点想启动Chrome:java -jar selenium-server-standalone-x.xx.x.jar -role webdriver -nodeConfig defaultNode.json -Dwebdriver.chrome.driver=.\chromedriver.exe
.\chromedriver.exe为chrome driver的放置路径,我的node.bat和chrome driver在一个文件夹,所以是.\chromedriver.exe。
如果节点想启动Firefox: java -jar selenium-server-standalone-x.xx.x.jar -role webdriver -nodeConfig defaultNode.json -Dwebdriver.firefox.bin="E:\\firefox\\firefox.exe"
"E:\\firefox\\firefox.exe"为Firefox的安装路径。
Step5:启动node双击 node.bat,即可启动node。
备注: 上面所有的文件都必须在一个路径下。
一台测试机上可以启动多个代理,前提是要保证不使用相同的端口即可。(不稳定、不建议)
终端查看
在hub机器的浏览器上打开页面: http://localhost:4444/grid/console#
即可查看所有连接到本hub的机器信息。
代码
#encoding:utf-8 """Hello World""" from selenium import webdriver from selenium.webdriver.common.desired_capabilities import DesiredCapabilities import time #IE browser driver=webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub',desired_capabilities=DesiredCapabilities.INTERNETEXPLORER) #chrome browser # driver=webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub',desired_capabilities=DesiredCapabilities.CHROME) # Firefox browser # driver=webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub',desired_capabilities=DesiredCapabilities.FIREFOX) driver.get("http://www.baidu.com") time.sleep(3) print driver.title assert "百度一下" in driver.title elem=driver.find_element_by_id("kw") elem.send_keys("selenium") driver.find_element_by_id("su").click() time.sleep(3) print driver.title assert "selenium" in driver.title driver.close()