启动selenium server命令阻止我的python代码执行

时间:2014-05-25 12:18:34

标签: python multithreading selenium

我想用python(subprocess.popen)启动selenium server命令,然后我想在该服务器上执行一些其他命令:

subprocess.popen(selenium Server command)

subprocess.popen(next command which should be launched while command selenium server is launched)

问题是第一个命令不会终止,除非第二个命令终止,因为第二个命令永远不会启动,因为python正在等待第一个终止我的代码块

我应该使用多线程来完成这项工作还是有其他解决方案?我怎么能这样做,因为我之前从未使用多线程?

感谢

1 个答案:

答案 0 :(得分:0)

在后台启动第一个命令。然后,您可以在程序中与其进行交互,或者启动另一个客户端进行交互。

(假设是Linux)

import subprocess, time

procs = []
procs.append( subprocess.Popen(
    'sleep 3 ; echo first &',
    shell=True) )

procs.append( subprocess.Popen(
    '/bin/echo beer',
    shell=True) )

print '\nwaiting for workers:'
for proc in procs:
    print proc.communicate()

示例输出。请注意beer出现在first之前 - 第一个shell命令在输出之前等待了三秒钟。

waiting for workers:
beer
first
(None, None)
(None, None)