def cloakbrowser_tutorial_job():
outcomes = {
"basic_launch": None,
"advanced_context": None,
"storage_restore": None,
"persistent_profile": None,
"rendered_extraction": None,
"static_parsing": None,
"errors": [],
}
print_section("1. Fundamental CloakBrowser launch")
browser = None
attempt:
browser = launch(
headless=True,
humanize=True,
args=[
"--no-sandbox",
"--disable-dev-shm-usage",
],
)
web page = browser.new_page()
web page.goto("https://instance.com", wait_until="domcontentloaded", timeout=60000)
outcomes["basic_launch"] = {
"title": web page.title(),
"body_preview": web page.locator("physique").inner_text(timeout=15000)[:300],
"url": web page.url,
}
print(json.dumps(outcomes["basic_launch"], indent=2))
besides Exception as e:
error = {
"part": "basic_launch",
"error": repr(e),
}
outcomes["errors"].append(error)
print(error)
lastly:
safe_close(browser, "primary browser")
print_section("2. Superior context launch with customized browser context")
context = None
attempt:
context = launch_context(
headless=True,
humanize=True,
viewport={"width": 1365, "peak": 768},
locale="en-US",
timezone_id="America/New_York",
color_scheme="gentle",
extra_http_headers={
"Settle for-Language": "en-US,en;q=0.9",
"X-Tutorial-Run": "cloakbrowser-colab",
},
args=[
"--no-sandbox",
"--disable-dev-shm-usage",
],
)
web page = context.new_page()
web page.goto(TEST_PAGE_URL, wait_until="domcontentloaded", timeout=60000)
web page.locator("#title").fill("CloakBrowser Colab Consumer")
web page.locator("#message").fill(
"We're testing protected native browser automation in Google Colab."
)
web page.locator("#submit").click on()
web page.wait_for_timeout(1000)
alerts = web page.consider("() => collectSignals()")
status_text = web page.locator("#standing").inner_text()
web page.screenshot(path=str(SCREENSHOT_PATH), full_page=True)
context.storage_state(path=str(STORAGE_STATE_PATH))
outcomes["advanced_context"] = {
"status_text": status_text,
"alerts": alerts,
"screenshot_path": str(SCREENSHOT_PATH),
"storage_state_path": str(STORAGE_STATE_PATH),
}
print(json.dumps(outcomes["advanced_context"], indent=2, default=str))
besides Exception as e:
error = {
"part": "advanced_context",
"error": repr(e),
}
outcomes["errors"].append(error)
print(error)
lastly:
safe_close(context, "superior context")
print_section("3. Restore localStorage utilizing storage_state")
restored_context = None
attempt:
restored_context = launch_context(
headless=True,
humanize=True,
storage_state=str(STORAGE_STATE_PATH),
viewport={"width": 1365, "peak": 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.consider("""
() => ({
tutorial_name: localStorage.getItem("tutorial_name"),
tutorial_message: localStorage.getItem("tutorial_message"),
cloakbrowser_test: localStorage.getItem("cloakbrowser_test")
})
""")
outcomes["storage_restore"] = restored_values
print(json.dumps(restored_values, indent=2))
besides Exception as e:
error = {
"part": "storage_restore",
"error": repr(e),
}
outcomes["errors"].append(error)
print(error)
lastly:
safe_close(restored_context, "restored context")
