Selenium python firefox запуск для другого python скрипта

Имеется питон скрипт вида

options = webdriver.FirefoxOptions()
options.add_argument("-headless")
driver = webdriver.Firefox(options=options)
driver.get(site)

В скрипт передаётся site который потом открывается в firefox. Передать сразу набор сайтов не выйдет как следствие каждый раз при запуске скрипта создаётся новый драйвер и закрывается на что тратится куча времени.

Возможно ли как то предварительно ( может в другом скрипте ) создать драйвер и передать в используемый скрипт? Что бы осталось только вызвать

driver.get(site)

Не создавая каждый раз новый драйвер и тем самым значительно увеличивая скорость работы. А по завершению закрыть драйвер.


Ответы (1 шт):

Автор решения: Egor

Предложу такое простое решение, не проверял работоспособность:

def create_driver():
    options = Options()
    options.add_argument("-headless")
    driver = webdriver.Firefox(options=options)
    return driver

def open_site(driver, site):
    driver.get(site)

def close_driver(driver):
    driver.quit()

if __name__ == "__main__":
    driver = create_driver()

    sites = ["https://example.com", "https://another-site.com", "https://yet-another-site.com"]

    for site in sites:
        open_site(driver, site)
        # Здесь можно добавить ожидание, обработку страницы, и так далее
    
    close_driver(driver)
→ Ссылка