Python Selenium3 WebDriver Remote

来源:互联网 发布:react native java 编辑:程序博客网 时间:2024/06/03 17:04

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-8import selenium.webdriver.remote.webdriverfrom selenium.webdriver.common.desired_capabilities import DesiredCapabilitiesfrom time import sleepdriver = 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



1 0
原创粉丝点击