我在Mac OS上的本地计算机上运行测试 Python 2.7.5
硒中心:
java -jar~ / Downloads / selenium-server-standalone-2.42.2.jar -role hub
Selenium节点:
java -jar ~/Downloads/selenium-server-standalone-2.42.2.jar -Dwebdriver.chrome.driver=/usr/local/bin/chromedriver -role node http://127.0.0.1:4444/grid/register
chromedriver是:
ChromeDriver 2.10.267517
我使用了行为框架并在每个场景之前打开了chrome驱动程序的新实例,并在场景钩子之后使用了quit方法。
当我一个接一个地运行测试时,没有任何问题。
当我在firefox驱动程序上并行运行测试时,一切都很好但是crome我有意想不到的行为。
当一个节点上的并行测试数量的第一步超过所有其他步骤时崩溃:
WebDriverException:消息:u"与远程浏览器通信时出错。它可能已经死了。\ n建立信息:版本:' 2.42.2',修订版:' 6a6995d',时间:' 2014-06-03 17:42:03&# 39; \ n系统信息:主持人:'指向',ip:' 127.0.0.1',os.name:' Mac OS X',os.arch: ' x86_64',os.version:' 10.9.2',java.version:' 1.7.0_51' \ n驱动程序信息:driver.version:EventFiringWebDriver" ; Stacktrace:
在selenium网格控制台上,我看到第一个selenium会话已关闭,但所有其他会话都存在。
我确定每次测试只有一个驱动程序实例。 我运行与多处理模块支持并行的测试:
for n in range(N):
p = multiprocessing.Process(target=worker_wrapper, args=(compiled_cmd,))
jobs.append(p)
p.start()
time.sleep(3)
for j in jobs:
j.join()
if j.exitcode != 0:
sys.exit(1)
我对我的问题有任何建议。
答案 0 :(得分:0)
听起来好像你的驱动程序存储了静态或某种全局变量。
发布初始化代码可能会显示问题
答案 1 :(得分:0)
通过移动linux平台(Ubuntu)来解决问题。