55 lines
2.8 KiB
Python
55 lines
2.8 KiB
Python
from selenium.webdriver.common.by import By
|
|
from selenium.webdriver.support.ui import WebDriverWait
|
|
from selenium.webdriver.support import expected_conditions as EC
|
|
|
|
def navigate_to_url(driver, url, clave, contraseña):
|
|
formatted_url = f"https://{clave}:{contraseña}@{url}"
|
|
driver.get(formatted_url)
|
|
driver.get(f'https://{url}')
|
|
# If dentro del código no existe un elemento con el id ctl00_lnkHome
|
|
if not WebDriverWait(driver, 10).until(
|
|
EC.presence_of_element_located((By.ID, "ctl00_lnkHome"))
|
|
):
|
|
raise Exception("No se pudo iniciar sesión.")
|
|
|
|
# wait until it appears this element.id = ctl00_contenedor_HistorialAlumno1_lblApPatAlumnoHP and get it
|
|
|
|
def wait_for_element(driver, element_id):
|
|
return WebDriverWait(driver, 10).until(
|
|
EC.presence_of_element_located((By.ID, element_id))
|
|
)
|
|
|
|
servicio_social = wait_for_element(driver, "ctl00_contenedor_HistorialAlumno1_Header1_lblSS")
|
|
alumno = {
|
|
"apellido_paterno": wait_for_element(driver, "ctl00_contenedor_HistorialAlumno1_lblApPatAlumnoHP").text,
|
|
"apellido_materno": wait_for_element(driver, "ctl00_contenedor_HistorialAlumno1_lblApMatAlumnoHP").text,
|
|
"curp": wait_for_element(driver, "ctl00_contenedor_HistorialAlumno1_lblCURPAlumnoHP").text,
|
|
"clave_carrera": int(wait_for_element(driver, "ctl00_contenedor_HistorialAlumno1_Header1_lblCveCarrera").text),
|
|
"plan": int(wait_for_element(driver, "ctl00_contenedor_HistorialAlumno1_Header1_lblAlupla").text),
|
|
"clave": int(wait_for_element(driver, "ctl00_contenedor_HistorialAlumno1_Header1_lblCveUlsa").text),
|
|
"servicio_social": servicio_social.text == "Realizado",
|
|
"nombre":wait_for_element(driver, "ctl00_contenedor_HistorialAlumno1_lblNombreAlumnoHP").text,
|
|
"correo": wait_for_element(driver, "ctl00_contenedor_HistorialAlumno1_lblCorreoAlumnoHP").text,
|
|
'estatus' : wait_for_element(driver, "ctl00_contenedor_HistorialAlumno1_Header1_lblStat").text,
|
|
"telefono": wait_for_element(driver, "ctl00_contenedor_HistorialAlumno1_lblTelefonoAlumnoHP").text,
|
|
"semestre": int(wait_for_element(driver, "ctl00_contenedor_HistorialAlumno1_Header1_lblSem").text),
|
|
"sexo": wait_for_element(driver, "ctl00_contenedor_HistorialAlumno1_lblSexoAlumnoHP").text,
|
|
}
|
|
|
|
|
|
click_element(driver, element_id="ctl00_contenedor_HistorialAlumno1_lblBtnSeccionHAcademico")
|
|
|
|
historial_academico = driver.page_source
|
|
|
|
alumno['promedio'] = float(wait_for_element(driver, "ctl00_contenedor_HistorialAlumno1_lblPromedioAlumnoHA").text)
|
|
|
|
return alumno, historial_academico
|
|
|
|
def click_element(driver, element_id):
|
|
elemento = WebDriverWait(driver, 10).until(
|
|
EC.presence_of_element_located((By.ID, element_id))
|
|
)
|
|
elemento.click()
|
|
|
|
|