Build a CloakBrowser Automation Workflow with Stealth Chromium, Persistent Profiles, and Browser Signal Inspection
results = {
“basic_launch”: None,
“advanced_context”: None,
“storage_restore”: None,
“persistent_profile”: None,
“rendered_extraction”: None,
“static_parsing”: None,
“errors”: [],
}
print_section(“1. Basic CloakBrowser launch”)
browser = None
try:
browser = launch(
headless=True,
humanize=True,
args=[
“–no-sandbox”,
“–disable-dev-shm-usage”,
],
)
page = browser.new_page()
page.goto(“https://example.com”, wait_until=”domcontentloaded”, timeout=60000)
results[“basic_launch”] = {
“title”: page.title(),
“body_preview”: page.locator(“body”).inner_text(timeout=15000)[:300],
“url”: page.url,
}
print(json.dumps(results[“basic_launch”], indent=2))
except Exception as e:
error = {
“section”: “basic_launch”,
“error”: repr(e),
}
results[“errors”].append(error)
print(error)
finally:
safe_close(browser, “basic browser”)
print_section(“2. Advanced context launch with custom browser context”)
context = None
try:
context = launch_context(
headless=True,
humanize=True,
viewport={“width”: 1365, “height”: 768},
locale=”en-US”,
timezone_id=”America/New_York”,
color_scheme=”light”,
extra_http_headers={
“Accept-Language”: “en-US,en;q=0.9”,
“X-Tutorial-Run”: “cloakbrowser-colab”,
},
args=[
“–no-sandbox”,
“–disable-dev-shm-usage”,
],
)
page = context.new_page()
page.goto(TEST_PAGE_URL, wait_until=”domcontentloaded”, timeout=60000)
page.locator(“#name”).fill(“CloakBrowser Colab User”)
page.locator(“#message”).fill(
“We are testing safe local browser automation in Google Colab.”
)
page.locator(“#submit”).click()
page.wait_for_timeout(1000)
signals = page.evaluate(“() => collectSignals()”)
status_text = page.locator(“#status”).inner_text()
page.screenshot(path=str(SCREENSHOT_PATH), full_page=True)
context.storage_state(path=str(STORAGE_STATE_PATH))
results[“advanced_context”] = {
“status_text”: status_text,
“signals”: signals,
“screenshot_path”: str(SCREENSHOT_PATH),
“storage_state_path”: str(STORAGE_STATE_PATH),
}
print(json.dumps(results[“advanced_context”], indent=2, default=str))
except Exception as e:
error = {
“section”: “advanced_context”,
“error”: repr(e),
}
results[“errors”].append(error)
print(error)
finally:
safe_close(context, “advanced context”)
print_section(“3. Restore localStorage using storage_state”)
restored_context = None
try:
restored_context = launch_context(
headless=True,
humanize=True,
storage_state=str(STORAGE_STATE_PATH),
viewport={“width”: 1365, “height”: 768},
locale=”en-US”,
timezone_id=”America/New_York”,
args=[
“–no-sandbox”,
“–disable-dev-shm-usage”,
],
)
restored_page = restored_context.new_page()
restored_page.goto(TEST_PAGE_URL, wait_until=”domcontentloaded”, timeout=60000)
restored_values = restored_page.evaluate(“””
() => ({
tutorial_name: localStorage.getItem(“tutorial_name”),
tutorial_message: localStorage.getItem(“tutorial_message”),
cloakbrowser_test: localStorage.getItem(“cloakbrowser_test”)
})
“””)
results[“storage_restore”] = restored_values
print(json.dumps(restored_values, indent=2))
except Exception as e:
error = {
“section”: “storage_restore”,
“error”: repr(e),
}
results[“errors”].append(error)
print(error)
finally:
safe_close(restored_context, “restored context”)



