Chrome Options in Python Selenium : Disable GPU vs Headless
--disable-gpu doesn't run the script without opening the browser, only
--headless. It used to be needed on Windows Issue 737678: Headless: make --disable-gpu flag unnecessary, but this bug was fixed.
chrome_options.add_argument('--headless') is all you need.
You saw it right. Adding the argument
--headless initiates the Chrome Browsing Context in headless mode.
However the purpose of the argument
--disable-gpu was to enable google-chrome-headless on windows platform. It was needed as SwiftShader fails an assert on Windows in headless mode earlier.
This issue was resolved through Headless: make --disable-gpu flag unnecessary
You can find a relevant detailed discussion in ERROR:gpu_process_transport_factory.cc(1007)-Lost UI shared context : while initializing Chrome browser through ChromeDriver in Headless mode