我想用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正在等待第一个终止我的代码块
我应该使用多线程来完成这项工作还是有其他解决方案?我怎么能这样做,因为我之前从未使用多线程?
感谢
答案 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)