Aviso:

Para brindarle información de soporte completa de manera más rápida, el contenido de esta página ha sido traducido al español mediante traducción automática. Para consultar la información de soporte más precisa, consulte la versión en inglés de este contenido.

Conectarse a Headless Chrome o Firefox

Info: Esta funcionalidad actualmente solo está disponible en Early Access. Para probar esta funcionalidad, puede enviar su solicitud al Soporte de Catalyst a support@zohocatalyst.com

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

La consola de SmartBrowz también le proporciona los fragmentos de código requeridos en los function stacks de Java, Node.js y Python.

Para acceder al fragmento de código requerido:

  1. Haga clic en How to Connect? catalyst_smartbrowz_browsergrid_connect_strt

  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

  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

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.

copy

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(); } }

copy

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(); } }

copy

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(); } })();

copy

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(); } })();

copy

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())

copy

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())

copy

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(); })();

copy

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())

copy

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(); } } }

copy

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(); })();

copy

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.

Última actualización 2026-03-24 17:38:39 +0530 IST