是否有可能在python中并行化selenium webdriver get_attribute调用?

时间:2015-08-17 13:13:47

标签: python selenium selenium-webdriver python-multiprocessing

我正在运行此代码

from multiprocessing.Pool import ThreadPool
from selenium import webdriver
driver = webdriver.Firefox()
driver.get(url)
elements = driver.find_elements_by_class_name("class-name")
pool = ThreadPool(4)
async = [pool.apply_async(fn_which_calls_get_attribute,(element,)) for element in elements]
results = [result.get() for result in async]

适用于某些结果,但会为其他结果抛出 ResponseNotReady 错误。如果我使用" pool.apply"它会按预期运行而不是异步版本。

我是一个问题,我一次多次调用selenium驱动程序,错误是因为它无法处理它?或者我的并行化有问题吗?

1 个答案:

答案 0 :(得分:2)

只是暗示Selenium在单个线程和单核心系统中运行。所以不可能在selenium webdriver上运行多线程。是的,您可以创建一个单独的实例并连接到多核系统的另一个核心。

我可能不会回答你的问题,但如果你想做一些类似的好事而不做。