实现原理selenium grid +多线程(持续更新中)
1 selenium grid工作原理(转自虫师) selenium grid 是勇于设计帮助我们进行分布式测试的工具,其整体结构是由一个hub节点和若干个代理节点组成,hub用来管理各个代理节点的注册和状态信息,并且接受远程客户端代码与直接调用selenium-server是一样的.
ps:如果是在本机执行,记得在启动hub的时候同时也要启动node
import webdriver
from webdriver.common.desired_capabilities import DesiredCapabilities
driver=webdriver.Remote(
command_executor='http://127.0.0.1:4444/wd/hub',
desired_capabilities=DesiredCapabilities.FIREFOX
)
driver.get("http:www.baidu.com")
这是默认的启动方式,如果需要在一个机器上面启动多个node,就要注意端口的分配了,
这样表示在一台机器上面启动了三个node,这样在脚本引用node的时候就需要带上端口标识了,
import webdriver
from webdriver.common.desired_capabilities import DesiredCapabilities
driver=webdriver.Remote(
command_executor='http://127.0.0.1:5556/wd/hub',
desired_capabilities=DesiredCapabilities.FIREFOX
)
driver.get("http:www.baidu.com")
此处就是引用启用的端口了,之前的4444为默认的端口.
刚才调试中发现一个问题,jdk版本1.6的时候,运行selenium -jar 2.53.0的时候,会提示些错误,类似版本不支持的,在我把JDK版本升级到1.8.0后 执行就正常了.