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 webdriverfrom selenium.webdriver.common.keys import Keysimport 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_sourcefinally: driver.quit()