.
This commit is contained in:
commit
28985674b9
111
main.py
Normal file
111
main.py
Normal file
@ -0,0 +1,111 @@
|
||||
from playwright.sync_api import sync_playwright
|
||||
|
||||
# Datos de acceso
|
||||
URL_LOGIN = "https://emios003.energy-minus.es/"
|
||||
USERNAME = "tecsitel"
|
||||
PASSWORD = "Ellogoesverd3"
|
||||
|
||||
class ViewnextEmios:
|
||||
def __init__(self, url: str, username: str, password: str):
|
||||
self.url = url
|
||||
self.username = username
|
||||
self.password = password
|
||||
self.browser = None
|
||||
self.page = None
|
||||
|
||||
def pause(self):
|
||||
self.page.pause()
|
||||
|
||||
def start_browser(self, headless: bool = False):
|
||||
"""Inicializa el navegador y abre una nueva página."""
|
||||
playwright = sync_playwright().start()
|
||||
self.browser = playwright.chromium.launch(headless=headless)
|
||||
self.page = self.browser.new_page()
|
||||
|
||||
def login(self):
|
||||
"""Realiza el proceso de login en la página web."""
|
||||
self.page.goto(self.url)
|
||||
self.page.fill("#usuario", self.username)
|
||||
self.page.fill("#contrasenya", self.password)
|
||||
self.page.click("#boton-login")
|
||||
self.page.wait_for_selector("#menu-modulos") # Ajustar según el selector correcto
|
||||
|
||||
def is_logged_in(self) -> bool:
|
||||
"""Verifica si el login fue exitoso."""
|
||||
texto_usuario = self.page.inner_text("#contenedor #banner #descripcion-usuario")
|
||||
return "TECSITEL (Ninguna)" in texto_usuario
|
||||
|
||||
def close_browser(self):
|
||||
"""Cierra el navegador."""
|
||||
if self.browser:
|
||||
self.browser.close()
|
||||
|
||||
def pick_site(self, site_name: str) -> bool:
|
||||
"""Selecciona sede"""
|
||||
self.page.locator("#menu-modulos .menu-modulos-opcion-modulo a").click() # Enlace 'Administración'
|
||||
|
||||
|
||||
# Muestra el selector oculto por ChosenJS
|
||||
self.page.evaluate("""
|
||||
(selector) => {
|
||||
$(selector).attr('style', 'display: inline')
|
||||
}
|
||||
""", "select#id_red_actual_administracion_seleccion_red")
|
||||
self.page.select_option("#id_red_actual_administracion_seleccion_red", label=site_name)
|
||||
|
||||
|
||||
|
||||
|
||||
#self.page.evaluate("""
|
||||
# (selector, value) => {
|
||||
# $(selector).chosen();
|
||||
# $(selector).val(value).change();
|
||||
# $(selector).trigger("chosen:updated");
|
||||
# }
|
||||
#""", "#seleccion-red", site_name)
|
||||
|
||||
#self.page.click("#seleccion-red .chosen-single")
|
||||
#self.page.fill('#seleccion-red .chosen-search input', site_name)
|
||||
#self.page.click("//li[contains(text(), 'Texto a buscar')]")
|
||||
#self.page.wait_for_timeout(5000)
|
||||
|
||||
#assert self.page.locator("#id_red_actual_administracion_seleccion_red_chosen .chosen-single span", has_text=site_name)
|
||||
|
||||
self.page.locator("#boton_administracion_seleccionar_red_actual").click() # Botón selección de red
|
||||
#self.page.wait_for_timeout(1000)
|
||||
|
||||
message = self.page.locator("#popup_message").inner_text()
|
||||
|
||||
assert "Red actual establecida correctamente" in message
|
||||
|
||||
self.page.locator("#popup_panel .btn").click()
|
||||
|
||||
#<div id="popup_message" class="span10" style="text-align: center">Red actual establecida correctamente (09-VN-VALLECAS)</div>
|
||||
|
||||
#self.page.get_by_role("listitem").click()
|
||||
#self.page.get_by_role("button", name="Seleccionar red").click()
|
||||
#self.page.get_by_role("listitem").click()
|
||||
|
||||
#assert self.page.locator("#id_red_actual_administracion_seleccion_red_chosen").has_text(site_name)
|
||||
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
# Datos de acceso
|
||||
URL_LOGIN = "https://emios003.energy-minus.es/"
|
||||
USERNAME = "tecsitel"
|
||||
PASSWORD = "Ellogoesverd3"
|
||||
|
||||
bot = ViewnextEmios(URL_LOGIN, USERNAME, PASSWORD)
|
||||
bot.start_browser(headless=False)
|
||||
bot.login()
|
||||
|
||||
if not bot.is_logged_in():
|
||||
print("❌ Error en el login")
|
||||
bot.close_browser()
|
||||
|
||||
bot.pick_site("[Tecsitel] 06-VN-ORENSE")
|
||||
print("✅ Login exitoso")
|
||||
bot.pause()
|
||||
#bot.close_browser()
|
||||
BIN
requirements.txt
Normal file
BIN
requirements.txt
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user