Невозможно передать драйвер селена в качестве аргумента функции, использующей `pool.starmap` - PullRequest
0 голосов
/ 21 июня 2020

Я не могу передать драйвер селена в качестве аргумента функции, используя pool.starmap.

Вот минимальный воспроизводимый проверяемый пример:

Основной код:

from wait import sleep
import multiprocessing
from selenium import webdriver

driver = webdriver.Firefox()
driver.get('https://www.google.com')

secs = [1,2,3,4,5]

if __name__ == "__main__":
    with multiprocessing.Pool(processes=4) as pool:
        results = pool.starmap(sleep,[(driver,x) for x in secs])
    print(results)

Wait.py:

import time

def sleep(driver,t):
    time.sleep(t)
    return f'slept for {t}'

Я получаю эту ошибку TypeError: cannot serialize '_io.TextIOWrapper' object. Как я могу это обойти? Я поискал в Интернете, но не нашел ответа.

1 Ответ

0 голосов
/ 21 июня 2020

Почему бы вам не использовать driver.set_page_load_timeout("time in seconds") для сна драйвера?

...