Loading...
Loading...
Connects to Oxylabs remote headless browsers via Chrome DevTools Protocol (CDP) using Playwright or Puppeteer. Provides anti-detection, CAPTCHA handling, residential proxies, and geo-targeting built in. Use when browser automation needs remote execution, stealth capabilities, rendered pages, screenshots, PDFs, or complex JavaScript interaction.
npx skill4agent add oxylabs/agent-skills headless-browserOXY_UNBLOCKER_USERNAMEOXY_UNBLOCKER_PASSWORDOXY_HB_USERNAMEOXY_HB_PASSWORD| Browser | Global endpoint | US endpoint |
|---|---|---|
| Chrome | | |
| Firefox (legacy) | | |
| Type | Best For | Notes |
|---|---|---|
| Chrome | High performance, dedicated servers, residential proxies | Use |
| Firefox (legacy) | Alternative engine for targets that perform better outside Chrome | Use |
from playwright.sync_api import sync_playwright
import os
username = os.environ.get("OXY_UNBLOCKER_USERNAME") or os.environ["OXY_HB_USERNAME"]
password = os.environ.get("OXY_UNBLOCKER_PASSWORD") or os.environ["OXY_HB_PASSWORD"]
endpoint = "ubc.oxylabs.io"
with sync_playwright() as p:
browser = p.chromium.connect_over_cdp(
f"wss://{username}:{password}@{endpoint}"
)
page = browser.new_page()
page.goto("https://example.com")
print(page.content())
browser.close()const { chromium } = require("playwright");
const username = process.env.OXY_UNBLOCKER_USERNAME || process.env.OXY_HB_USERNAME;
const password = process.env.OXY_UNBLOCKER_PASSWORD || process.env.OXY_HB_PASSWORD;
const endpoint = "ubc.oxylabs.io";
(async () => {
const browser = await chromium.connectOverCDP(
`wss://${username}:${password}@${endpoint}`
);
const page = await browser.newPage();
await page.goto("https://example.com");
console.log(await page.content());
await browser.close();
})();const puppeteer = require("puppeteer");
const username = process.env.OXY_UNBLOCKER_USERNAME || process.env.OXY_HB_USERNAME;
const password = process.env.OXY_UNBLOCKER_PASSWORD || process.env.OXY_HB_PASSWORD;
const endpoint = "ubc.oxylabs.io";
(async () => {
const browser = await puppeteer.connect({
browserWSEndpoint: `wss://${username}:${password}@${endpoint}`
});
const page = await browser.newPage();
await page.goto("https://example.com");
console.log(await page.content());
await browser.close();
})();window.postMessage({action: 'solve_captcha', type: '<captcha type>'}, '*')o_vnc=true| Parameter | Browser | Description |
|---|---|---|
| Chrome, Firefox | Route traffic through a 2-letter country code |
| Chrome, Firefox | Target a city; combine with |
| Chrome, Firefox | Target a US state; takes priority over |
| Chrome | Emulate |
| Chrome, Firefox | Enable Session Inspection for visual debugging |
| Firefox | Select supported Firefox Playwright version |
| Chrome | Pass supported Chrome browser arguments |
bargsforce-color-profile:<profile>window-position:X,Yhide-scrollbarsenable-features:<feature1>,<feature2>disable-notificationsbargs?bargs=force-color-profile:srgb&bargs=window-position:100,100p_cityp_ccp_statep_statep_ccoxylabs-captcha-solve-startoxylabs-captcha-solve-endoxylabs-captcha-solve-errorwindow.postMessage({action: 'solve_captcha', type: '<captcha type>'}, '*')hcaptcharecaptchaturnstile| Scenario | Use Headless Browser |
|---|---|
| Complex JavaScript sites | Yes |
| Anti-bot protected sites | Yes |
| Browser automation with stealth | Yes |
| Screenshot/PDF generation | Yes |
| Simple HTML scraping | Consider Web Scraper API instead |
firefox.connect