asifHuggingFace commited on
Commit
d0404e2
·
1 Parent(s): 493cb00
.python-version ADDED
@@ -0,0 +1 @@
 
 
1
+ 3.11
Dockerfile CHANGED
@@ -4,6 +4,10 @@ FROM python:3.11-slim
4
  ARG TARGETPLATFORM
5
  ARG NODE_MAJOR=20
6
 
 
 
 
 
7
  # Install system dependencies
8
  RUN apt-get update && apt-get install -y \
9
  wget \
@@ -68,7 +72,9 @@ WORKDIR /app
68
  # Copy requirements and install Python dependencies
69
  COPY requirements.txt .
70
 
71
- RUN pip install --no-cache-dir -r requirements.txt
 
 
72
 
73
  # Install playwright browsers and dependencies
74
  # playwright documentation suggests PLAYWRIGHT_BROWSERS_PATH is still relevant
 
4
  ARG TARGETPLATFORM
5
  ARG NODE_MAJOR=20
6
 
7
+ # Set Python version environment variables
8
+ ENV PYTHON_VERSION=3.11
9
+ ENV PYTHONUNBUFFERED=1
10
+
11
  # Install system dependencies
12
  RUN apt-get update && apt-get install -y \
13
  wget \
 
72
  # Copy requirements and install Python dependencies
73
  COPY requirements.txt .
74
 
75
+ # Upgrade pip and install Python dependencies
76
+ RUN python -m pip install --upgrade pip && \
77
+ pip install --no-cache-dir -r requirements.txt
78
 
79
  # Install playwright browsers and dependencies
80
  # playwright documentation suggests PLAYWRIGHT_BROWSERS_PATH is still relevant
README.md CHANGED
@@ -1,13 +1,9 @@
1
  ---
2
- title: Webui
3
- emoji: 🌍
4
- colorFrom: gray
5
- colorTo: yellow
6
  sdk: gradio
7
- sdk_version: 5.39.0
8
- app_file: app.py
9
- pinned: false
10
- short_description: web agent
11
  ---
12
 
13
  Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
+ title: Browser_Web_UI_Automation
3
+ app_file: webui.py
 
 
4
  sdk: gradio
5
+ sdk_version: 5.27.0
6
+ python_version: "3.11"
 
 
7
  ---
8
 
9
  Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
requirements.txt CHANGED
@@ -1,4 +1,4 @@
1
- browser-use==0.1.48
2
  pyperclip==1.9.0
3
  gradio==5.27.0
4
  json-repair
 
1
+ browser-use>=0.1.48
2
  pyperclip==1.9.0
3
  gradio==5.27.0
4
  json-repair
runtime.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ python-3.11
src/browser/custom_browser.py CHANGED
@@ -1,5 +1,7 @@
1
  import asyncio
2
  import pdb
 
 
3
 
4
  from playwright.async_api import Browser as PlaywrightBrowser
5
  from playwright.async_api import (
@@ -9,22 +11,69 @@ from playwright.async_api import (
9
  Playwright,
10
  async_playwright,
11
  )
12
- from browser_use.browser.browser import Browser, IN_DOCKER
13
- from browser_use.browser.context import BrowserContext, BrowserContextConfig
14
- from playwright.async_api import BrowserContext as PlaywrightBrowserContext
15
- import logging
16
 
17
- from browser_use.browser.chrome import (
18
- CHROME_ARGS,
19
- CHROME_DETERMINISTIC_RENDERING_ARGS,
20
- CHROME_DISABLE_SECURITY_ARGS,
21
- CHROME_DOCKER_ARGS,
22
- CHROME_HEADLESS_ARGS,
23
- )
24
- from browser_use.browser.context import BrowserContext, BrowserContextConfig
25
- from browser_use.browser.utils.screen_resolution import get_screen_resolution, get_window_adjustments
26
- from browser_use.utils import time_execution_async
27
- import socket
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
 
29
  from .custom_context import CustomBrowserContext
30
 
 
1
  import asyncio
2
  import pdb
3
+ import logging
4
+ import socket
5
 
6
  from playwright.async_api import Browser as PlaywrightBrowser
7
  from playwright.async_api import (
 
11
  Playwright,
12
  async_playwright,
13
  )
 
 
 
 
14
 
15
+ # Import browser_use components with comprehensive error handling
16
+ try:
17
+ from browser_use.browser.browser import Browser, IN_DOCKER
18
+ from browser_use.browser.context import BrowserContext, BrowserContextConfig
19
+ from browser_use.browser.chrome import (
20
+ CHROME_ARGS,
21
+ CHROME_DETERMINISTIC_RENDERING_ARGS,
22
+ CHROME_DISABLE_SECURITY_ARGS,
23
+ CHROME_DOCKER_ARGS,
24
+ CHROME_HEADLESS_ARGS,
25
+ )
26
+ from browser_use.browser.utils.screen_resolution import get_screen_resolution, get_window_adjustments
27
+ from browser_use.utils import time_execution_async
28
+ except ImportError as e:
29
+ # Fallback for different browser_use versions
30
+ logger = logging.getLogger(__name__)
31
+ logger.warning(f"Failed to import browser_use components: {e}")
32
+
33
+ # Set default values
34
+ IN_DOCKER = False
35
+
36
+ # Try to import basic components
37
+ try:
38
+ from browser_use.browser.browser import Browser
39
+ from browser_use.browser.context import BrowserContext, BrowserContextConfig
40
+ except ImportError:
41
+ logger.error("Could not import basic browser_use components")
42
+ raise
43
+
44
+ # Try to import chrome components with fallbacks
45
+ try:
46
+ from browser_use.browser.chrome import (
47
+ CHROME_ARGS,
48
+ CHROME_DETERMINISTIC_RENDERING_ARGS,
49
+ CHROME_DISABLE_SECURITY_ARGS,
50
+ CHROME_DOCKER_ARGS,
51
+ CHROME_HEADLESS_ARGS,
52
+ )
53
+ except ImportError:
54
+ logger.warning("Could not import chrome components, using defaults")
55
+ CHROME_ARGS = []
56
+ CHROME_DETERMINISTIC_RENDERING_ARGS = []
57
+ CHROME_DISABLE_SECURITY_ARGS = []
58
+ CHROME_DOCKER_ARGS = []
59
+ CHROME_HEADLESS_ARGS = []
60
+
61
+ # Try to import utility functions with fallbacks
62
+ try:
63
+ from browser_use.browser.utils.screen_resolution import get_screen_resolution, get_window_adjustments
64
+ except ImportError:
65
+ logger.warning("Could not import screen resolution utilities, using defaults")
66
+ def get_screen_resolution():
67
+ return {'width': 1920, 'height': 1080}
68
+ def get_window_adjustments():
69
+ return 0, 0
70
+
71
+ try:
72
+ from browser_use.utils import time_execution_async
73
+ except ImportError:
74
+ logger.warning("Could not import time_execution_async, using dummy function")
75
+ def time_execution_async(func):
76
+ return func
77
 
78
  from .custom_context import CustomBrowserContext
79
 
src/browser/custom_context.py CHANGED
@@ -2,12 +2,29 @@ import json
2
  import logging
3
  import os
4
 
5
- from browser_use.browser.browser import Browser, IN_DOCKER
6
- from browser_use.browser.context import BrowserContext, BrowserContextConfig
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
  from playwright.async_api import Browser as PlaywrightBrowser
8
  from playwright.async_api import BrowserContext as PlaywrightBrowserContext
9
  from typing import Optional
10
- from browser_use.browser.context import BrowserContextState
11
 
12
  logger = logging.getLogger(__name__)
13
 
 
2
  import logging
3
  import os
4
 
5
+ # Import browser_use components with comprehensive error handling
6
+ try:
7
+ from browser_use.browser.browser import Browser, IN_DOCKER
8
+ from browser_use.browser.context import BrowserContext, BrowserContextConfig, BrowserContextState
9
+ except ImportError as e:
10
+ # Fallback for different browser_use versions
11
+ logger = logging.getLogger(__name__)
12
+ logger.warning(f"Failed to import browser_use components: {e}")
13
+
14
+ # Set default values
15
+ IN_DOCKER = False
16
+
17
+ # Try to import basic components
18
+ try:
19
+ from browser_use.browser.browser import Browser
20
+ from browser_use.browser.context import BrowserContext, BrowserContextConfig, BrowserContextState
21
+ except ImportError:
22
+ logger.error("Could not import basic browser_use components")
23
+ raise
24
+
25
  from playwright.async_api import Browser as PlaywrightBrowser
26
  from playwright.async_api import BrowserContext as PlaywrightBrowserContext
27
  from typing import Optional
 
28
 
29
  logger = logging.getLogger(__name__)
30
 
webui.py CHANGED
@@ -12,7 +12,7 @@ def main():
12
  args = parser.parse_args()
13
 
14
  demo = create_ui(theme_name=args.theme)
15
- demo.queue().launch(server_name=args.ip, server_port=args.port)
16
 
17
 
18
  if __name__ == '__main__':
 
12
  args = parser.parse_args()
13
 
14
  demo = create_ui(theme_name=args.theme)
15
+ demo.queue().launch(server_name=args.ip, server_port=args.port, share=True)
16
 
17
 
18
  if __name__ == '__main__':