[Add] browser-use and main.py
This commit is contained in:
parent
08e64bdf45
commit
96914d44ac
221 changed files with 30952 additions and 1 deletions
59
browser-use/tests/conftest.py
Normal file
59
browser-use/tests/conftest.py
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
"""
|
||||
Test configuration for browser-use.
|
||||
"""
|
||||
|
||||
import logging
|
||||
import os
|
||||
import sys
|
||||
|
||||
import pytest
|
||||
from langchain_openai import ChatOpenAI
|
||||
from pydantic import SecretStr
|
||||
|
||||
# Ensure the project root is in the Python path
|
||||
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
|
||||
|
||||
# Load environment variables
|
||||
from dotenv import load_dotenv
|
||||
|
||||
load_dotenv()
|
||||
|
||||
# Configure logging
|
||||
logging.basicConfig(level=logging.DEBUG)
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
from browser_use.browser.browser import Browser, BrowserConfig
|
||||
from browser_use.browser.context import BrowserContext
|
||||
|
||||
|
||||
@pytest.fixture(scope='session')
|
||||
def llm():
|
||||
"""
|
||||
Fixture to provide a ChatOpenAI instance or a mock for testing.
|
||||
Uses a mock if OPENAI_API_KEY is not set.
|
||||
"""
|
||||
api_key = os.getenv('OPENAI_API_KEY')
|
||||
logger.debug(f'API Key present: {bool(api_key)}')
|
||||
logger.debug('Using actual ChatOpenAI model')
|
||||
return ChatOpenAI(model='gpt-4o', api_key=SecretStr(api_key) if api_key else None)
|
||||
|
||||
|
||||
@pytest.fixture(scope='session')
|
||||
def browser():
|
||||
"""
|
||||
Fixture to provide a Browser instance for testing.
|
||||
"""
|
||||
logger.debug('Creating Browser instance for testing')
|
||||
return Browser(config=BrowserConfig(headless=True, disable_security=True))
|
||||
|
||||
|
||||
@pytest.fixture(scope='function')
|
||||
async def browser_context(browser):
|
||||
"""
|
||||
Fixture to provide a BrowserContext instance for testing.
|
||||
"""
|
||||
logger.debug('Creating BrowserContext instance for testing')
|
||||
context = BrowserContext(browser=browser)
|
||||
yield context
|
||||
await context.close()
|
||||
Loading…
Add table
Add a link
Reference in a new issue