# Firefox (Legacy)

Um ambiente de navegador baseado em Firefox pode ser testado quando o ambiente Chrome não consegue fornecer resultados aceitáveis. O ambiente Firefox evita a detecção de bots por meio de modificações integradas e integração automática de proxy.

{% hint style="info" %}
O endpoint Firefox suporta **duas versões do Playwright**: **1.51** e **1.56**. Outras versões não são suportadas. Você pode especificar a versão do Playwright via o `o_pw` parâmetro, por exemplo:

`wss://USER:PASS@ubs.oxylabs.io?o_pw=1.56`&#x20;
{% endhint %}

## Detalhes da conexão

Conecte-se ao UBS usando o seguinte endpoint WebSocket:

```
wss://ubs.Oxylabs.io
```

## Considerações importantes

* Requer o uso explícito da `firefox` implementação em bibliotecas de automação
* Pode exigir pequenos ajustes em comparação com soluções baseadas em Chrome

## Uso básico

{% tabs %}
{% tab title="Python" %}

```python
from playwright.sync_api import sync_playwright

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

with sync_playwright() as p:
    browser = p.firefox.connect(browser_url, timeout=60000)
    page = browser.new_page()
    page.goto('https://example.com')
    browser.close()
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const { firefox } = require('playwright');

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

    const browser = await firefox.connect(browserUrl, { timeout: 60000 });
    const page = await browser.newPage();
    await page.goto('https://example.com');
    await browser.close();
})();
```

{% endtab %}
{% endtabs %}

## Infraestrutura de proxy dos Estados Unidos

Usuários que operam principalmente nos EUA podem se conectar diretamente à infraestrutura baseada nos EUA por meio do ponto de entrada especial. Isso garante tempo de carregamento mais rápido e melhor eficiência de navegação. Para estabelecer a conexão, selecione o seguinte:

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

Exemplos de código:

{% tabs %}
{% tab title="Python" %}

```python
from playwright.sync_api import sync_playwright

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

with sync_playwright() as p:
    browser = p.firefox.connect(browser_url, timeout=60000)
    page = browser.new_page()
    page.goto('https://example.com')
    browser.close()
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const { firefox } = require('playwright');

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

    const browser = await firefox.connect(browserUrl, { timeout: 60000 });
    const page = await browser.newPage();
    await page.goto('https://example.com');
    await browser.close();
})();
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
**Observação:** esta solução principalmente reduz o tempo de resposta para os usuários baseados nos EUA e não deve ser confundida com a seleção de geolocalização do proxy. Mais sobre isso na seção a seguir.&#x20;
{% endhint %}

## Seleção de país

Você pode especificar um país para sua sessão do navegador adicionando o `?p_cc` parâmetro à sua URL de conexão. Aqui estão exemplos:

{% tabs %}
{% tab title="Python" %}

```python
from playwright.sync_api import sync_playwright

username = "your-username"
password = "your-password"
endpoint = "ubs.oxylabs.io"
country = "US"  # Substitua pelo código do país desejado
browser_url = f"wss://{username}:{password}@{endpoint}?p_cc={country}"

with sync_playwright() as p:
    browser = p.firefox.connect(browser_url, timeout=60000)
    page = browser.new_page()
    page.goto('https://example.com')
    browser.close()
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const { firefox } = require('playwright');

(async () => {
    const username = 'your-username';
    const password = 'your-password';
    const endpoint = 'ubs.oxylabs.io';
    const country = 'US';  // Substitua pelo código do país desejado
    const browserUrl = `wss://${username}:${password}@${endpoint}?p_cc=${country}`;

    const browser = await firefox.connect(browserUrl, { timeout: 60000 });
    const page = await browser.newPage();
    await page.goto('https://example.com');
    await browser.close();
})();
```

{% endtab %}
{% endtabs %}

Se nenhum país for especificado, o sistema atribuirá automaticamente um com base na disponibilidade.


---

# 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/pt-br/headless-browser/firefox.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.
