Ist es möglich, get_attribute-Aufrufe von Selenium Webdriver in Python zu parallelisieren?
Ich führe diesen Code aus
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]
, das für einige der Ergebnisse gut funktioniert, aber einen Fehler von @ auslö ResponseNotReady für andere Ergebnisse. Es läuft wie erwartet, wenn ich "pool.apply" anstelle der asynchronen Version verwende.
Ist es ein Problem, dass ich gleichzeitig mehrere Anrufe beim Selentreiber tätige, und der Fehler liegt darin, dass er nicht damit umgehen kann? Oder stimmt etwas mit meiner Parallelisierung nicht?