tfrere commited on
Commit
a798955
·
1 Parent(s): 54608f2
Files changed (1) hide show
  1. app/server.py +15 -24
app/server.py CHANGED
@@ -4,11 +4,11 @@ from fastapi import FastAPI, Request, Form
4
  from fastapi.responses import HTMLResponse, JSONResponse, FileResponse
5
  from fastapi.staticfiles import StaticFiles
6
  from fastapi.templating import Jinja2Templates
7
- from helium import start_chrome, kill_browser, get_driver
8
- from selenium import webdriver
9
  import uuid
10
  import logging
11
  import pathlib
 
12
 
13
  # Configure logging
14
  logging.basicConfig(level=logging.INFO)
@@ -51,34 +51,25 @@ async def take_screenshot(url: str = Form(...)):
51
  logger.info(f"HOME env: {os.environ.get('HOME')}")
52
  logger.info(f"Current working directory: {os.getcwd()}")
53
 
54
- # Configuration pour Chrome dans Helium
55
- # Créer les options Chrome à la manière Selenium
56
- chrome_options = webdriver.ChromeOptions()
57
- chrome_options.add_argument('--headless')
58
- chrome_options.add_argument('--no-sandbox')
59
- chrome_options.add_argument('--disable-setuid-sandbox')
60
- chrome_options.add_argument('--disable-dev-shm-usage')
61
- chrome_options.add_argument('--disable-accelerated-2d-canvas')
62
- chrome_options.add_argument('--no-first-run')
63
- chrome_options.add_argument('--no-zygote')
64
- chrome_options.add_argument('--single-process')
65
- chrome_options.add_argument('--disable-gpu')
66
-
67
- # Take the screenshot with Helium
68
  logger.info("Launching Chrome browser")
69
- # Utiliser les options Chrome configurées pour Selenium
70
- driver = start_chrome(url, headless=True, options=chrome_options)
71
-
72
- logger.info("Browser launched successfully")
73
 
74
  try:
 
 
 
 
 
 
 
 
 
75
  logger.info(f"Taking screenshot at {filepath}")
76
- # Utiliser get_driver et save_screenshot pour prendre la capture d'écran
77
- selenium_driver = get_driver()
78
- selenium_driver.save_screenshot(filepath)
79
  logger.info(f"Screenshot saved to {filepath}")
80
  finally:
81
- # Always kill the browser to free resources
82
  kill_browser()
83
  logger.info("Browser closed")
84
 
 
4
  from fastapi.responses import HTMLResponse, JSONResponse, FileResponse
5
  from fastapi.staticfiles import StaticFiles
6
  from fastapi.templating import Jinja2Templates
7
+ from helium import start_chrome, kill_browser, go_to
 
8
  import uuid
9
  import logging
10
  import pathlib
11
+ import time
12
 
13
  # Configure logging
14
  logging.basicConfig(level=logging.INFO)
 
51
  logger.info(f"HOME env: {os.environ.get('HOME')}")
52
  logger.info(f"Current working directory: {os.getcwd()}")
53
 
54
+ # Lancer Chrome avec des options simples
 
 
 
 
 
 
 
 
 
 
 
 
 
55
  logger.info("Launching Chrome browser")
56
+ driver = start_chrome(headless=True)
 
 
 
57
 
58
  try:
59
+ # Aller à l'URL
60
+ logger.info(f"Navigating to URL: {url}")
61
+ go_to(url)
62
+
63
+ # Attendre que la page soit chargée
64
+ logger.info("Waiting for page to load")
65
+ time.sleep(3)
66
+
67
+ # Prendre la capture d'écran
68
  logger.info(f"Taking screenshot at {filepath}")
69
+ driver.save_screenshot(filepath)
 
 
70
  logger.info(f"Screenshot saved to {filepath}")
71
  finally:
72
+ # Toujours fermer le navigateur
73
  kill_browser()
74
  logger.info("Browser closed")
75