可以在python中并行化SeleniumWebDriver get_属性调用吗?

可以在python中并行化SeleniumWebDriver get_属性调用吗?,python,selenium,selenium-webdriver,python-multiprocessing,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_call

我正在运行这个代码

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]
对于某些结果,它可以正常工作,但对于其他结果,它会抛出一个responseNodeTready错误。如果我使用“pool.apply”而不是异步版本,它将按预期运行


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

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


我可能不会回答您的问题,但如果您试图做类似的好事,请不要做。

我不确定,但我注意到,当我使用不同输入的bash脚本多次运行使用selenium的同一脚本时,selenium会失败。这似乎确实意味着selenium webdriver和true parallelismAn observastion有问题-如果您只是在DOM上查询属性,那么比selenium轻得多的解决方案。这有点相关:。