--- title: "Conectarse a un Navegador Headless" url: https://docs.catalyst.zoho.com/es/smartbrowz/help/browser-grid/headless-connect/ description: "Procese cargas masivas de solicitudes usando m煤ltiples navegadores headless conectados mediante bibliotecas de automatizaci贸n, con mayor control sobre las configuraciones de nodos y navegadores" last_updated: 2026-10-06T06:21:49Z service: SmartBrowz type: general related_links: - name: "Funcionalidades de Browser Grid" url: /es/smartbrowz/help/smartbrowz/browser-grid/features/ - name: "Flujo de Trabajo de Browser Grid" url: /es/smartbrowz/help/smartbrowz/browser-grid/workflow/ - name: "Crear un Browser Grid" url: /es/smartbrowz/help/smartbrowz/browser-grid/create-grid/ - name: "Browser Grid Java SDK" url: /es/sdk/java/v1/smartbrowz/browser-grid/overview/ - name: "Browser Grid Node.js SDK" url: /es/sdk/nodejs/v2/smartbrowz/browser-grid/overview/ - name: "Browser Grid Python SDK" url: /es/sdk/python/v1/smartbrowz/browser-grid/overview/ - name: "Browser Grid REST API" url: /es/api/code-reference/smartbrowz/browser-grid/list-all-grids/#ListallBrowserGrids --- # Conectarse a Headless Chrome o Firefox > 馃摙 **Anuncio:** Browser Grid ya est谩 disponible en todos los DC. 脷salo de forma gratuita hasta el **1 de octubre de 2026**. Catalyst SmartBrowz generar谩 un endpoint CDP/Webdriver una vez que cree un Browser Grid. Este endpoint ser谩 asegurado usando una clave API 煤nica, que tambi茅n ser谩 generada por el servicio SmartBrowz. Necesita usar este endpoint seguro en su c贸digo para conectarse al navegador remoto y activar el grid. ![catalyst_smartbrowz_browsergrid_access_url](https://catalyst-docs-development.zohostratus.in/images/help/smartbrowz/browser-grid/catalyst_smartbrowz_browsergrid_access_url.webp) La consola de SmartBrowz tambi茅n le proporciona los fragmentos de c贸digo requeridos en los function stacks de [Java](https://docs.catalyst.zoho.com/es/sdk/java/v1/smartbrowz/browser-grid/overview/), [Node.js](https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/smartbrowz/browser-grid/overview/) y [Python](https://docs.catalyst.zoho.com/es/sdk/python/v1/smartbrowz/browser-grid/overview/). Para acceder al fragmento de c贸digo requerido: 1. Haga clic en **How to Connect?** ![catalyst_smartbrowz_browsergrid_connect_strt](https://catalyst-docs-development.zohostratus.in/images/help/smartbrowz/browser-grid/catalyst_smartbrowz_browsergrid_connect_strt.webp) 2. Podr谩 ver y copiar el fragmento de c贸digo que necesita usar para conectarse a los navegadores headless. Puede usar el men煤 desplegable para seleccionar su runtime requerido. ![catalyst_smartbrowz_browsergrid_stack_sel_connect](https://catalyst-docs-development.zohostratus.in/images/help/smartbrowz/browser-grid/catalyst_smartbrowz_browsergrid_stack_sel_connect.webp) 3. Necesita pegar el fragmento en su archivo de c贸digo y ejecutarlo para activar el browser grid y conectarse a sus navegadores headless. ![catalyst_smartbrowz_browsergrid_active_label](https://catalyst-docs-development.zohostratus.in/images/help/smartbrowz/browser-grid/catalyst_smartbrowz_browsergrid_active_label.webp) Una vez conectado, el grid ser谩 marcado como **Active**. Seg煤n su configuraci贸n, los nodos generar谩n la cantidad requerida de navegadores para procesar sus solicitudes. > **Info:** Aseg煤rese de hacer clic en el bot贸n **Refresh** para mostrar las estad铆sticas m谩s recientes. ### Fragmentos de C贸digo para Conectarse al Navegador Headless Los siguientes son fragmentos de c贸digo que necesita copiar y usar en su c贸digo para activar su browser grid y conectarse al navegador headless. **Selenium** **Java** **Conectar a Headless Chrome** ```java import java.net.MalformedURLException; import java.net.URL; import org.openqa.selenium.Capabilities; import org.openqa.selenium.remote.RemoteWebDriver; import org.openqa.selenium.chrome.ChromeOptions; public class RemoteChromeLoggingExample { public static void main(String[] args) throws MalformedURLException { ChromeOptions options = new ChromeOptions(); options.addArguments("--no-sandbox"); options.addArguments("--headless"); URL remoteUrl = new URL("YOUR_WEBDRIVER_ENDPOINT"); RemoteWebDriver driver = new RemoteWebDriver(remoteUrl, options); Capabilities caps = driver.getCapabilities(); String browserName = caps.getBrowserName(); String browserVersion = caps.getBrowserVersion(); System.out.println("Browser: " + browserName + " " + browserVersion); driver.get("https://example.com"); System.out.println("Page title is: " + driver.getTitle()); driver.quit(); } } ``` **Conectar a Headless Firefox** ```java import java.net.MalformedURLException; import java.net.URL; import org.openqa.selenium.Capabilities; import org.openqa.selenium.firefox.FirefoxOptions; import org.openqa.selenium.remote.RemoteWebDriver; public class RemoteFirefoxLoggingExample { public static void main(String[] args) throws MalformedURLException { FirefoxOptions options = new FirefoxOptions(); options.addArguments("--headless"); options.addArguments("--no-sandbox"); options.addArguments("--disable-dev-shm-usage"); URL remoteUrl = new URL("YOUR_WEBDRIVER_ENDPOINT"); RemoteWebDriver driver = new RemoteWebDriver(remoteUrl, options); Capabilities caps = driver.getCapabilities(); String browserName = caps.getBrowserName(); String browserVersion = caps.getBrowserVersion(); System.out.println("Browser: " + browserName + " " + browserVersion); driver.get("https://example.com"); System.out.println("Page title is: " + driver.getTitle()); driver.quit(); } } ``` **Node.js** **Conectar a Headless Chrome** ```js const { Builder } = require('selenium-webdriver'); const chrome = require('selenium-webdriver/chrome'); (async function test() { let options = new chrome.Options(); options.addArguments('--headless'); options.addArguments('--no-sandbox'); let driver = await new Builder() .forBrowser('chrome') .setChromeOptions(options) .usingServer('YOUR_WEBDRIVER_ENDPOINT') .build(); try { await driver.get('https://example.com'); console.log(await driver.getTitle()); } catch (err) { console.error(err); } finally { await driver.quit(); } })(); ``` **Conectar a Headless Firefox** ```js const { Builder, By } = require('selenium-webdriver'); const firefox = require('selenium-webdriver/firefox'); (async function RemoteFirefoxLoggingExample() { let options = new firefox.Options(); options.addArguments('--headless'); let driver = await new Builder() .forBrowser('firefox') .setFirefoxOptions(options) .usingServer('YOUR_WEBDRIVER_ENDPOINT') .build(); try { await driver.get('https://example.com'); console.log(await driver.getTitle()); } catch (err) { console.error(err); } finally { await driver.quit(); } })(); ``` **Python** **Conectar a Headless Chrome** ```python import asyncio from selenium import webdriver from selenium.webdriver.chrome.options import Options async def index(): options = Options() options.add_argument("--disable-extensions") options.add_argument("--no-sandbox") options.add_argument("--headless") options.add_argument("--disable-dev-shm-usage") driver = webdriver.Remote( command_executor="YOUR_WEBDRIVER_ENDPOINT", options=options ) driver.get("https://example.com") driver.save_screenshot("screenshot.png") driver.quit() async def my_async_function(): await index() if __name__ == "__main__": asyncio.run(my_async_function()) ``` **Conectar a Headless Firefox** ```python import asyncio from selenium import webdriver from selenium.webdriver.firefox.options import Options async def index(): options = Options() options.add_argument("--headless") capabilities = { "browserName": "firefox", "browserVersion": "latest", "platformName": "linux" } driver = webdriver.Remote( command_executor="YOUR_WEBDRIVER_ENDPOINT", desired_capabilities=capabilities, options=options ) driver.get("https://example.com") driver.save_screenshot("screenshot.png") driver.quit() async def my_async_function(): await index() if __name__ == "__main__": asyncio.run(my_async_function()) ``` **Puppeteer** **Node.js** **Conectar a Headless Chrome** ```js const puppeteer = require("puppeteer"); (async () => { const browser = await puppeteer.connect({ browserWSEndpoint: "YOUR_ENDPOINT" }); const page = await browser.newPage(); await page.goto("https://example.com"); await page.screenshot({ path: "remote-example.png" }); await browser.disconnect(); })(); ``` **Python** **Conectar a Headless Chrome** ```python import asyncio from pyppeteer import connect async def main(): browser = await connect({ 'browserWSEndpoint': 'YOUR_ENDPOINT' }) page = await browser.newPage() await page.goto("https://example.com") await page.screenshot({'path': 'screenshot.png'}) await browser.close() asyncio.run(main()) ``` **Playwright** **Java** **Conectar a Headless Chrome** ```java package com.example; import java.nio.file.Paths; import com.microsoft.playwright.*; public class Test { public static void main(String[] args) { try (Playwright playwright = Playwright.create()) { BrowserType browserType = playwright.chromium(); Browser browser = browserType.connectOverCDP("YOUR_ENDPOINT"); Page page = browser.newPage(); page.navigate("https://example.com"); System.out.println("Title: " + page.title()); page.screenshot(new Page.ScreenshotOptions().setPath(Paths.get("screenshot.png"))); String html = page.content(); System.out.println("Page HTML: " + html.substring(0, Math.min(html.length(), 200)) + "..."); browser.close(); } } } ``` **Node.js** **Conectar a Headless Chrome** ```js const { chromium } = require("playwright"); (async () => { const browser = await chromium.connectOverCDP("YOUR_ENDPOINT"); const context = browser.contexts().length ? browser.contexts()[0] : await browser.newContext(); const page = await context.newPage(); await page.goto("https://example.com"); console.log(await page.title()); await browser.close(); })(); ``` **Python** **Conectar a Headless Chrome** ```python import asyncio from playwright.async_api import async_playwright async def run(playwright): browser = await playwright.chromium.connect_over_cdp("YOUR_ENDPOINT") context = await browser.new_context() page = await context.new_page() await page.goto("https://example.com") await page.screenshot(path="screenshot.png") print(await page.title()) await browser.close() async def main(): async with async_playwright() as playwright: await run(playwright) asyncio.run(main()) ``` > **Aviso:** Cualquier acci贸n u operaci贸n del navegador que codifique usando la funci贸n Browser Logic, o cualquier tarea de automatizaci贸n del navegador o extracci贸n de datos web que realice usando cualquier componente de Catalyst SmartBrowz es bajo su propia responsabilidad. Le recomendamos encarecidamente que use los componentes de SmartBrowz para realizar operaciones en dominios que permitan dichas acciones, o con la aprobaci贸n adecuada. Adem谩s, aunque Catalyst proporciona una infraestructura segura para codificar sus funciones, cualquier consecuencia de la l贸gica que codifique usando funciones de Catalyst es exclusivamente suya.