我正在运行此代码
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驱动程序,错误是因为它无法处理它?或者我的并行化有问题吗?
答案 0 :(得分:2)
只是暗示Selenium在单个线程和单核心系统中运行。所以不可能在selenium webdriver上运行多线程。是的,您可以创建一个单独的实例并连接到多核系统的另一个核心。
我可能不会回答你的问题,但如果你想做一些类似的好事而不做。