Si eres un desarrollado web iniciante puede que creas que solo es posible manipular el navegador usando interfaces graficas, o los DevTools de Chrome (Herramientas de desarrollador de Chrome).
Pero de hecho hay una forma en la que podemos manipular navegadores basados en Chromium (Google Chrome, Brave, Opera, Microsoft Edge, etc) usando solo Código o mejor dicho una API.
Gracias a un protocolo llamado Chromium DevTools Protocol
Usandolo podemos manipular el navegador para hacer clicks,cambiar de pagina, leer el contenido, tomar screenshots, manipular la Red del navegador, el DOM, la terminal, el css, y asi (https://www.canidev.tools/)
Y todo esto incluso sin siquiera abrir una sola ventana (Headless Mode).
Aunque interactuar directamente con el protocolo es dificil, es por eso que existen bibliotecas en distintos lengujaes que facilitan su uso como:
- Puppeteer (en Javascript)
- Python Chrome DevTools Protocol, https://pypi.org/project/chrome-devtools-protocol/
- Rust Headless Chrome,
- Chromedp (en Go), https://github.com/chromedp/chromedp
ademas de otras bibliotecas similares para otros lenguajes de programación (C#, Java, kotlin, etc).
usando estas herramientas puedes testear interfaces, testear extensiones de chrome, hacer webscrapping, o automatizar tareas del navegador.