mirror of
https://github.com/browser-use/browser-use
synced 2026-05-06 17:52:15 +02:00
66 lines
1.1 KiB
Python
66 lines
1.1 KiB
Python
from typing import Optional
|
|
|
|
from pydantic import BaseModel, model_validator
|
|
|
|
|
|
# Action Input Models
|
|
class SearchGoogleAction(BaseModel):
|
|
query: str
|
|
|
|
|
|
class GoToUrlAction(BaseModel):
|
|
url: str
|
|
|
|
|
|
class ClickElementAction(BaseModel):
|
|
index: int
|
|
xpath: Optional[str] = None
|
|
|
|
|
|
class InputTextAction(BaseModel):
|
|
index: int
|
|
text: str
|
|
xpath: Optional[str] = None
|
|
|
|
|
|
class DoneAction(BaseModel):
|
|
text: str
|
|
success: bool
|
|
|
|
|
|
class SwitchTabAction(BaseModel):
|
|
page_id: int
|
|
|
|
|
|
class OpenTabAction(BaseModel):
|
|
url: str
|
|
|
|
|
|
class ScrollAction(BaseModel):
|
|
amount: Optional[int] = None # The number of pixels to scroll. If None, scroll down/up one page
|
|
|
|
|
|
class SendKeysAction(BaseModel):
|
|
keys: str
|
|
|
|
|
|
class ExtractPageContentAction(BaseModel):
|
|
value: str
|
|
|
|
|
|
class NoParamsAction(BaseModel):
|
|
"""
|
|
Accepts absolutely anything in the incoming data
|
|
and discards it, so the final parsed model is empty.
|
|
"""
|
|
|
|
@model_validator(mode='before')
|
|
def ignore_all_inputs(cls, values):
|
|
# No matter what the user sends, discard it and return empty.
|
|
return {}
|
|
|
|
class Config:
|
|
# If you want to silently allow unknown fields at top-level,
|
|
# set extra = 'allow' as well:
|
|
extra = 'allow'
|