windows作为hub,centos7.4作为node。 firefox用的centos7自带的52版本,懒得更新。
vm虚拟机必须设置成bridge模式上网,否则报错。具体参见博文:Vmware改成bridge方式联网
两个机器都要装JDK1.8,下载selenium-server-standalone-3.4.0.jar,firefox驱动geckodriver0.16版本解压到/usr/bin。
1、windows需关闭防火墙!!!进到elenium-server-standalone-3.4.0.jar所在目录下,执行以下语句。
2、linux下需卸载virbr0网卡,virbr0是由libvirtd服务创建,libvirtd在guest里没啥卵用,所以干掉它。
1)停止virbr0:
ifconfig virbr0 down
2)删除virbr0:
brctl delbr virbr0
3)禁用libvirtd:
systemctl disable libvirtd
进到elenium-server-standalone-3.4.0.jar所在目录下,执行以下语句,-port自行设置, -hub需填windows的hub注册地址。
浏览器打开网址,验证node节点是否注册成功。
3、编写分布式执行的测试脚本。终于成功调用linux的firefox进行自动化测试,不得不多坑真的多。。。
#encoding = utf-8
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
driver = webdriver.Remote(
command_executor='http://192.168.1.111:6655/wd/hub',
desired_capabilities={
"browserName":"firefox"
})
try:
driver.implicitly_wait(30)
driver.maximize_window()
driver.get("http://www.sogou.com")
assert "搜狗" in driver.title
elem = driver.find_element_by_id("query")
elem.send_keys("webdriver实战宝典")
elem.send_keys(Keys.RETURN)
time.sleep(3)
assert "吴晓华" in driver.page_source
finally:
driver.quit()