У меня проблема: я создал собственный класс для первой инициализации моего веб-драйвера.Он включает в себя несколько методов, и я повторно использовал этот скрипт в новом программном обеспечении.Однако в этом приложении мне нужно перезапустить веб-драйвер после команды driver.quit.Я могу перезагрузить нужные мне возможности вместе с профилем Firefox, который я уже использовал;но я не могу установить параметры снова: мой веб-драйвер открывает нежелательное окно.
# 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, чтобы иметь возможность повторно инициализировать веб-драйвер, создавая новый объектОднако я бы хотел этого избежать, если это разумно.
Заранее спасибо