我正在编写一个打开3个Selenium Webdrivers的代码。
reminders
浏览器加载需要花费大量时间,我想并行加载它。 我虽然使用线程,但是如何从线程返回b1,b2,b3?
我的意思是,如果我有这个功能:
mainScreenViewController
使用它进行线程看起来像:
from selenium import webdriver
b1 = webdriver.Firefox()
b2 = webdriver.Firefox()
b3 = webdriver.Firefox()
但返回的值(浏览器实例)未设置为b1。
我该怎么做?
答案 0 :(得分:2)
看看Futures。他们应该允许你运行这样的代码:
N = 3
with ThreadPoolExecutor(max_workers=N) as executor:
# start three Firefoxes in parallel
futures = [executor.submit(webdriver.Firefox) for i in range(N)]
# wait for all of them to be started
browsers = [f.result() for f in futures]