Selenium3出来了,除了需要指定浏览器安装路径,驱动程序路径加入PATH,单机版用起来没什么大差别。
鉴于网上现在关于WebDriver Remote,仅有的几篇帖子都是JAVA版的。猫哥这里尝试了一下Python版。
1. 环境
Python 2.7.15
Selenium-Server-Standalone-3.3.1
Selenium-Server就是一个jar包,放在任何位置都可以。执行时候直接java -jar 运行。
java -jar selenium-server-standalone-3.3.1.jar
2. 单机版
如果不考虑remote模式,开启一个Selenium浏览器实例应该是类似这样。
driver = selenium.webdriver.Firefox()
但是Remote模式下,就要稍微复杂一点儿:
driver = selenium.webdriver.remote.webdriver.WebDriver(command_executor="http://127.0.0.1:4444/wd/hub",desired_capabilities=DesiredCapabilities.FIREFOX)
记得先启动selenium-server,直接java执行即可。
java -jar selenium-server-standalone-3.3.1.jar
完整的最简单例子如下:
#!/usr/bin/env python
#coding=utf-8
import selenium.webdriver.remote.webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from time import sleep
driver = selenium.webdriver.remote.webdriver.WebDriver(command_executor="http://127.0.0.1:4444/wd/hub",desired_capabilities=DesiredCapabilities.FIREFOX)
driver.get("http://www.baidu.com")
driver.find_element_by_id("kw").send_keys("python")
driver.find_element_by_id("su").click()
sleep(2)
driver.quit()
3. 多机版
多机版(真正的remote模式),需要定义两个角色:hub(即Master)、node(即Slave)。
要在其它node主机执行,必须满足以下几个条件:
- 本地hub 主机与远程node 主机之间可以相互ping 通。
- 远程主机必须安装运行脚本的浏览器及驱动(如,chrome 浏览器及chromedriver.exe 驱动)
- 远程主机必须安装java 环境
- 远程主机必须安装selenium server
具体怎么用,可以看帮助。
看所有的一级选项:
java -jar selenium-server-standalone-3.3.1.jar --help
看hub特性:
java -jar selenium-server-standalone-3.3.1.jar -role hub -help
看node特性:
java -jar selenium-server-standalone-3.3.1.jar -role node --help
启动hub很简单:
java -jar selenium-server-standalone-3.3.1.jar -role hub
启动node稍微复杂点儿,必须指定hub地址、端口:
java -jar selenium-server-standalone-3.3.1.jar -role node -port 5555 -hub http://10.120.9.222:4444/grid/register