Как запустить новый сеанс webdriver (driver.start_session), сохраняя «безголовый режим» активным в Selenium с python?

#python-3.x #selenium-webdriver

#python-3.x #selenium-webdriver

Вопрос:

У меня такая проблема: я создал пользовательский класс для обработки первой инициализации моего webdriver. Он включает в себя некоторые методы, и я повторно использовал этот скрипт в новом программном обеспечении. Однако в этом приложении мне действительно нужно перезапустить webdriver после установки драйвера.завершите команду. Я могу повторно загрузить необходимые мне возможности вместе с профилем firefox, который я уже использовал; но я не могу снова установить параметры: мой webdriver открывает нежелательное окно.

 # here my selenium control class which starts in headless mode if global variable "headless" is set to true
headless = True
class SeleniumCtrl:
    options = Options()
    options.add_argument('-headless')
    cap = DesiredCapabilities().FIREFOX
    cap["marionette"] = True
    cap['loggingPrefs'] = {'browser': 'ALL'}
    # other lines which the profile is set in....

    if headless:
        browser = webdriver.Firefox(profile, capabilities=cap, firefox_options=options, executable_path="/my path/geckodriver")
    else:
        browser = webdriver.Firefox(profile, capabilities=cap, executable_path="/my path/geckodriver")


# here my call to initialize the driver control and also the driver itself, ready to use
driver_ctrl = SeleniumCtr() #my custom class
driver_plain = driver-ctrl.browser

# here my function to reset the web driver session
def reset_session:
    # here some line to set the profile and the capabilities
    cap = DesiredCapabilities().FIREFOX
    cap["marionette"] = True
    cap['loggingPrefs'] = {'browser': 'ALL'}

    driver_plain.firefox_profile.set_preference(pref, val)
    current_url = driver_plain.current_url
    driver_plain.close()
    driver_plain.start_session(cap, profile) # here I should be able to set the "headless" opt again, but I don't know how
  

Конечно, я могу переписать код класса SeleniumCtrl, чтобы получить возможность повторно инициализировать веб-драйвер, создавая новый объект, однако я хотел бы избежать этого, если это разумно.

Заранее спасибо