# Chrome

El entorno de Headless Browser Chrome ofrece navegadores remotos de alto rendimiento que se ejecutan en servidores dedicados y usan Residential Proxies para la conexión. Estos entornos de navegador son rápidos, estables y altamente configurables. Pueden actuar como un reemplazo directo de su infraestructura de navegador local.

## Características clave

* Rendimiento rápido y estable
* Selección de cualquier país de proxy
* Compatible con Chrome DevTools Protocol (CDP)

## Detalles de conexión

Conéctese a UBC usando el siguiente endpoint WebSocket:

```
wss://UBC.Oxylabs.io
```

## Uso básico

{% tabs %}
{% tab title="Python (Playwright)" %}

```python
from playwright.sync_api import sync_playwright

username = "your-username"
password = "your-password"
endpoint = "ubc.oxylabs.io"
browser_url = f"wss://{username}:{password}@{endpoint}"

with sync_playwright() as p:
    browser = p.chromium.connect_over_cdp(browser_url)
    page = browser.new_page()
    page.goto('https://example.com')
    browser.close()
```

{% endtab %}

{% tab title="JavaScript (Playwright)" %}

```javascript
import { chromium } from 'playwright';

(async () => {
    const username = 'your-username';
    const password = 'your-password';
    const endpoint = 'ubc.oxylabs.io';
    const browserUrl = `wss://${username}:${password}@${endpoint}`;

    const browser = await chromium.connectOverCDP(browserUrl);
    const page = await browser.newPage();
    await page.goto('https://example.com');
    await browser.close();
})();
```

{% endtab %}

{% tab title="JavaScript (Puppeteer)" %}

```javascript
import puppeteer from 'puppeteer';

(async () => {
  const username = 'your-username';
  const password = 'your-password';
  const endpoint = 'ubc.oxylabs.io';
  const browserUrl = `wss://${username}:${password}@${endpoint}`;

  const browser = await puppeteer.connect({
    browserWSEndpoint: browserUrl
  });
  const page = await browser.newPage();
  await page.goto('https://example.com');
  await browser.close();
})();
```

{% endtab %}
{% endtabs %}

## Infraestructura de Proxies de Estados Unidos

Los usuarios que operan principalmente en EE. UU. pueden conectarse directamente a la infraestructura con sede en EE. UU. a través del punto de entrada especial. Esto garantiza un tiempo de carga más rápido y una mejor eficiencia de navegación. Para establecer la conexión, introduzca lo siguiente:

```
wss://ubc-us.oxylabs.io
```

Ejemplos de código:

{% tabs %}
{% tab title="Python (Playwright)" %}

```python
from playwright.sync_api import sync_playwright

username = "your-username"
password = "your-password"
endpoint = "ubc-us.oxylabs.io"
browser_url = f"wss://{username}:{password}@{endpoint}"

with sync_playwright() as p:
    browser = p.chromium.connect_over_cdp(browser_url)
    page = browser.new_page()
    page.goto('https://example.com')
    browser.close()
```

{% endtab %}

{% tab title="JavaScript (Playwright)" %}

```javascript
import { chromium } from 'playwright';

(async () => {
    const username = 'your-username';
    const password = 'your-password';
    const endpoint = 'ubc-us.oxylabs.io';
    const browserUrl = `wss://${username}:${password}@${endpoint}`;

    const browser = await chromium.connectOverCDP(browserUrl);
    const page = await browser.newPage();
    await page.goto('https://example.com');
    await browser.close();
})();
```

{% endtab %}

{% tab title="JavaScript (Puppeteer)" %}

```javascript
import puppeteer from 'puppeteer';

(async () => {
  const username = 'your-username';
  const password = 'your-password';
  const endpoint = 'ubc-us.oxylabs.io';
  const browserUrl = `wss://${username}:${password}@${endpoint}`;

  const browser = await puppeteer.connect({
    browserWSEndpoint: browserUrl
  });
  const page = await browser.newPage();
  await page.goto('https://example.com');
  await browser.close();
})();
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
**Nota:** Esta solución principalmente reduce el tiempo de respuesta para los usuarios con sede en EE. UU., y no debe confundirse con la selección de geolocalización de proxy. Más información sobre eso en la siguiente sección.&#x20;
{% endhint %}

## Argumentos del navegador

Headless Browser Chrome acepta argumentos adicionales del navegador pasados con la URL de conexión en el formato de `?bargs=`. Estos parámetros GET especifican los argumentos de la línea de comandos con los que deben iniciarse los navegadores.&#x20;

1. Si el argumento debe tener valor, usamos `bargs=argname:argvalue`;
2. Si el argumento es solo una bandera, usamos `bargs=flagname` .

Actualmente, Oxylabs Headless Browser Chrome admite los siguientes argumentos:

<table><thead><tr><th width="350.1015625">Argumento</th><th>Descripción</th></tr></thead><tbody><tr><td><code>force-color-profile:&#x3C;profile></code></td><td>Fuerza que todos los monitores se traten como si tuvieran el perfil de color especificado.</td></tr><tr><td><code>window-position:X,Y</code></td><td>Especifica la posición inicial de la ventana.</td></tr><tr><td><code>hide-scrollbars</code></td><td>Evita crear barras de desplazamiento para el contenido web; útil para tomar capturas de pantalla consistentes.</td></tr><tr><td><code>enable-features:&#x3C;feature1>,&#x3C;feature2>,&#x3C;feature3></code></td><td>Lista de nombres de funciones separada por comas para habilitar.</td></tr><tr><td><code>disable-notifications</code></td><td>Deshabilita las APIs de Web Notification y Push.</td></tr></tbody></table>

Ejemplo de uso:

{% tabs %}
{% tab title="Python (Playwright)" %}

```python
from playwright.sync_api import sync_playwright

username = "your-username"
password = "your-password"
endpoint = "ubc.oxylabs.io"
browser_url = f"wss://{username}:{password}@{endpoint}/?bargs=force-color-profile:srgb&bargs=window-position:100,100"

with sync_playwright() as p:
    browser = p.chromium.connect_over_cdp(browser_url)
    page = browser.new_page()
    page.goto('https://example.com')
    browser.close()
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developers.oxylabs.io/products/es/headless-browser/chrome.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
