Skip to content

Commit 54c8faf

Browse files
committed
basic test
1 parent 77c8911 commit 54c8faf

File tree

2 files changed

+68
-1
lines changed

2 files changed

+68
-1
lines changed

e2e/test_session.py

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
import os
2+
import re
3+
4+
import pytest
5+
from dotenv import load_dotenv
6+
from playwright.sync_api import Browser, Playwright, expect, sync_playwright
7+
8+
from browserbase import Browserbase
9+
10+
load_dotenv(override=True)
11+
BROWSERBASE_URL = os.environ.get("BROWSERBASE_URL", "wss://connect.browserbase.com")
12+
BROWSERBASE_API_KEY = os.environ.get("BROWSERBASE_API_KEY")
13+
if not BROWSERBASE_API_KEY:
14+
raise ValueError("BROWSERBASE_API_KEY is not set in environment")
15+
BROWSERBASE_PROJECT_ID = os.environ.get("BROWSERBASE_PROJECT_ID")
16+
if not BROWSERBASE_PROJECT_ID:
17+
raise ValueError("BROWSERBASE_PROJECT_ID is not set in environment")
18+
19+
bb = Browserbase(api_key=BROWSERBASE_API_KEY)
20+
21+
22+
@pytest.fixture(scope="session")
23+
def playwright() -> Playwright:
24+
with sync_playwright() as p:
25+
yield p
26+
27+
28+
"""
29+
def test_has_title():
30+
31+
page = browser.new_page()
32+
page.goto("https://playwright.dev/")
33+
34+
# Expect a title "to contain" a substring.
35+
expect(page).to_have_title(re.compile("Playwright"))
36+
37+
38+
def test_get_started_link(browser: Browser):
39+
page = browser.new_page()
40+
page.goto("https://playwright.dev/")
41+
42+
# Click the get started link.
43+
page.get_by_role("link", name="Get started").click()
44+
45+
# Expects page to have a heading with the name of Installation.
46+
expect(page.get_by_role("heading", name="Installation")).to_be_visible()
47+
"""
48+
49+
50+
def test_create_session(playwright: Playwright):
51+
session = bb.sessions.create(project_id=BROWSERBASE_PROJECT_ID)
52+
print("Api Key: " + os.environ.get("BROWSERBASE_API_KEY"))
53+
connect_url = session.connectUrl
54+
print("connect_url: " + connect_url)
55+
chromium = playwright.chromium
56+
browser = chromium.connect_over_cdp(
57+
"wss://connect.browserbase.com?apiKey=" + BROWSERBASE_API_KEY
58+
)
59+
context = browser.contexts[0]
60+
page = context.pages[0]
61+
62+
page.goto("https://www.google.com")
63+
page.screenshot(path="screenshot.png")
64+
print(page.title)
65+
assert True

pyproject.toml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,9 @@ format = { chain = [
8282

8383
"check:importable" = "python -c 'import browserbase'"
8484

85-
"run-example" = "python -c 'import sys; from pathlib import Path; example = Path(\"examples\") / sys.argv[1]; exec(open(example).read())'"
85+
"example" = "python -c 'import sys; from pathlib import Path; example = Path(\"examples\") / sys.argv[1]; exec(open(example).read())'"
86+
87+
"test:e2e" = "python -m pytest e2e"
8688

8789
typecheck = { chain = [
8890
"typecheck:pyright",

0 commit comments

Comments
 (0)