Files
browser-use/tests/process_dom_test.py
Nick Sweeting 280e5eca62 fix old tests
2025-05-27 22:31:32 -07:00

46 lines
1.3 KiB
Python

import asyncio
import json
import os
import time
import anyio
from browser_use.browser import BrowserProfile, BrowserSession
async def test_process_dom():
browser_session = BrowserSession(browser_profile=BrowserProfile(headless=True))
await browser_session.start()
try:
page = await browser_session.get_current_page()
await page.goto('https://kayak.com/flights')
# await page.goto('https://google.com/flights')
# await page.goto('https://immobilienscout24.de')
# await page.goto('https://seleniumbase.io/w3schools/iframes')
await asyncio.sleep(3)
async with await anyio.open_file('browser_use/dom/buildDomTree.js', 'r') as f:
js_code = await f.read()
start = time.time()
dom_tree = await page.evaluate(js_code)
end = time.time()
# print(dom_tree)
print(f'Time: {end - start:.2f}s')
os.makedirs('./tmp', exist_ok=True)
async with await anyio.open_file('./tmp/dom.json', 'w') as f:
await f.write(json.dumps(dom_tree, indent=1))
# both of these work for immobilienscout24.de
# await page.click('.sc-dcJsrY.ezjNCe')
# await page.click(
# 'div > div:nth-of-type(2) > div > div:nth-of-type(2) > div > div:nth-of-type(2) > div > div > div > button:nth-of-type(2)'
# )
input('Press Enter to continue...')
finally:
await browser_session.stop()