Вы можете структурировать свой код, используя try / finally:
driver = webdriver.Remote(command_executor='http://selenium-hub:4444/wd/hub', desired_capabilities=cap)
try:
##
# commands to browser
##
finally:
driver.quit()
или создать свой драйвер в качестве менеджера контекста:
with webdriver.Remote(command_executor='http://selenium-hub:4444/wd/hub', desired_capabilities=cap) as driver:
##
# commands to browser
##
... оба они всегда будут вызывать quit()
в вашем экземпляре драйвера.
Примечание: даже если они безусловно вызовут quit()
, это не обязательно означает, что браузер фактически закроется.