1- """
2- Configuración de test automatizados
3- """
4-
51import os
62from typing import Generator
73import pytest
8- from selenium . webdriver import Remote
4+ from selenium import webdriver
95from selenium .webdriver .chrome .options import Options as ChromeOptions
106from selenium .webdriver .firefox .options import Options as FirefoxOptions
117from dotenv import load_dotenv
@@ -19,8 +15,23 @@ def fixture_driver() -> Generator:
1915 "chrome" : ChromeOptions (),
2016 "firefox" : FirefoxOptions ()
2117 }
22- browser = os .getenv ("TEST_BROWSER" , "chrome" )
23- command_executor = os .getenv ("TEST_COMMAND_EXECUTOR" , "http://127.0.0.1:4444/wd/hub" )
18+
19+ browser = os .getenv ("TEST_BROWSER" , "chrome" ).lower ()
20+ # Si no existe la variable, dejamos None para saber que es local
21+ command_executor = os .getenv ("TEST_COMMAND_EXECUTOR" )
2422 options = posible_options [browser ]
25- driver = Remote (command_executor = command_executor , options = options )
23+
24+ # 🚀 Si hay una URL configurada, usamos Remote. Si no, abrimos navegador local.
25+ if command_executor :
26+ # Nota: Si usas Selenium 4, quita el '/wd/hub' de tu .env si te da error
27+ driver = webdriver .Remote (command_executor = command_executor , options = options )
28+ else :
29+ if browser == "chrome" :
30+ driver = webdriver .Chrome (options = options )
31+ elif browser == "firefox" :
32+ driver = webdriver .Firefox (options = options )
33+ else :
34+ raise ValueError (f"Navegador no soportado localmente: { browser } " )
35+
2636 yield driver
37+ driver .quit () # 👈 Es una buena práctica cerrar el navegador al terminar cada test
0 commit comments