1、下载selenium-server-standalone-.jar
历史版本链接:http://selenium-release.storage.googleapis.com/index.html
2、启动hub
java -jar {path}/selenium-server-standalone-3.8.1.jar -role hub (默认端口4444)
3、启动节点
启动本机节点:
java -jar {path}/selenium-server-standalone-3.8.1.jar -role node -hub http://localhost:4444/grid/register(默认端口5555)
java -jar {path}/selenium-server-standalone-3.8.1.jar -port 4445 -role node -hub http://localhost:4444/grid/register((指定端口)
在其他电脑上启动节点:
java -jar {path}/selenium-server-standalone-3.8.1.jar -port 4452 -role node -hub http://{启动hub的机器的IP}:4444/grid/register
java -jar {path}/selenium-server-standalone-3.8.1.jar -port 4453 -role node -hub http://{启动hub的机器的IP}:4444/grid/register
mac电脑查看本机正在使用的ip可通过在终端输入【ifconfig | grep “inet ” | grep -v 127.0.0.1】查看
4、查看后台信息
http://127.0.0.1:4444/grid/console
测试代码,运行chrome,Firefox浏览器:
from selenium import webdriver
import time
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
list={'http://127.0.0.1:5555/wd/hub':'chrome',
'http://127.0.0.1:4445/wd/hub':'firefox'}
for host,browser in list.items():
print(host,browser)
driver=webdriver.Remote(command_executor=host,
desired_capabilities={'platform':'ANY',
'browserName':browser,
'version':'',
'javascriptEnabled':True})
driver.get('http://www.baidu.com')
driver.find_element_by_id('kw').send_keys(browser)
driver.find_element_by_id('su').click()
driver.close()
多线程启动浏览器实例
#-*- coding:utf-8 -*-
from selenium import webdriver
from time import sleep
from threading import Thread
def test_baidu_search(host, browser):
driver = None
driver=webdriver.Remote(command_executor=host,
desired_capabilities={'platform':'ANY',
'browserName':browser,
'version':'',
'javascriptEnabled':True})
if driver == None:
exit()
driver.get('http://www.baidu.com')
driver.find_element_by_id('kw').send_keys(browser)
driver.find_element_by_id('su').click()
driver.quit()
if __name__ == "__main__":
# 浏览器和首页url
data = {'http://127.0.0.1:5555/wd/hub':'chrome',
'http://127.0.0.1:4445/wd/hub':'chrome'}
# 构建线程
threads = []
for host, browser in data.items():
t = Thread(target=test_baidu_search,args=(host,browser))
threads.append(t)
# 启动所有线程
for thr in threads:
thr.start()