def extraer_evidencias_lista_cursos(driver,
                                    cursos,
                                    lista,
                                    ruta,
                                    terminados=False):
    for elemento in lista:
        curso = cursos[elemento]
        nombre = get_nombre_curso(curso)
        fecha = get_fecha_curso(curso)
        salidas.imprimir_salida('Extrayendo datos de curso: %s' % nombre, 1)
        salida0 = almacenamiento.crear_ruta(ruta, fecha)
        salida = almacenamiento.crear_ruta(salida0, nombre)
        extraer_evidencias_curso(driver, cursos, elemento, salida, terminados)

        driver.get(URL_MAIN)
        try:
            WebDriverWait(driver, 10).until(
                EC.presence_of_element_located((By.ID, 'lblTotalCursos')))
            time.sleep(1)
        except:
            raise excepciones.CursosException(
                'No se pudo refrescar página de cursos')
        if terminados:
            ir_a_cursos_terminados(driver)
        cursos = regresar_cursos(driver)  # evitar stale
def ir_a_cursos_vigentes(driver):
    if not driver.current_url == URL_MAIN:
        driver.get(URL_MAIN)
        try:
            WebDriverWait(driver, 10).until(
                EC.presence_of_element_located((By.ID, 'lblTotalCursos')))
            time.sleep(1)
        except Exception as err:
            raise excepciones.CursosException(
                'No se pudo regresar a los cursos vigentes')
    else:
        ciclar_cursos_hasta_vigentes(driver)
def ciclar_cursos_hasta(driver, etiqueta):
    tipo_listado = driver.find_element_by_id('lbltipoCurso')
    if not tipo_listado.text == etiqueta:
        izquierda = driver.find_element_by_id('flechaIzq')
        while not tipo_listado.text == etiqueta:
            anterior = tipo_listado.text
            izquierda.click()
            try:
                WebDriverWait(
                    driver,
                    10).until(lambda useless: anterior != tipo_listado.text)
            except:
                raise excepciones.CursosException(
                    'No se pudo ciclar los tipos de cursos')
def regresar_a_curso(driver, pk, terminados=False):
    driver.back()  # siempre que se regresa eminus deselcciona el curso
    driver.refresh()
    assert driver.current_url == URL_MAIN
    try:
        WebDriverWait(driver, 10).until(
            EC.presence_of_element_located((By.ID, 'lblTotalCursos')))
        time.sleep(1)
    except:
        raise excepciones.CursosException('No se puede regresar al curso')
    if terminados:
        ir_a_cursos_terminados(driver)
    cursos = regresar_cursos(driver)  # es necesario para evitar stale
    curso = cursos[pk]
    ir_a_curso(driver, curso)
Exemple #5
0
def extraer_evidencias_curso(driver, cursos, pk, ruta, terminados=False):
    if not pk in cursos.keys():
        raise excepciones.CursosException('No existe el curso %s' % pk)
    curso = cursos[pk]
    ir_a_curso(driver, curso)

    actividades.ir_a_actividades(driver)
    salida = almacenamiento.crear_ruta(ruta, 'actividades')
    actividades.extraer_respuestas_actividades_curso(driver, salida)
    regresar_a_curso(driver, pk, terminados)

    evaluaciones.ir_a_evaluaciones(driver)
    salida = almacenamiento.crear_ruta(ruta, 'evaluaciones')
    evaluaciones.extraer_respuestas_evaluaciones_curso(driver, salida)
    regresar_a_curso(driver, pk, terminados)
def extraer_evidencias_curso(driver, cursos, pk, ruta, terminados=False):
    if not pk in cursos.keys():
        raise excepciones.CursosException('No existe el curso %s' % pk)
    curso = cursos[pk]
    ir_a_curso(driver, curso)

    actividades.ir_a_actividades(driver)
    salida = almacenamiento.crear_ruta(ruta, 'actividades')
    actividades.extraer_respuestas_actividades_curso(driver, salida)
    regresar_a_curso(driver, pk, terminados)

    evaluaciones.ir_a_evaluaciones(driver)
    salida = almacenamiento.crear_ruta(ruta, 'evaluaciones')
    evaluaciones.extraer_respuestas_evaluaciones_curso(driver, salida)
    regresar_a_curso(driver, pk, terminados)
    nombre_curso = ruta.split('/')[-1]
    os.system(
        f'cd "{ruta}"; zip -r "{nombre_curso}.zip" "actividades" "evaluaciones"; rm -r actividades; rm -r evaluaciones'
    )
def esperar_carga_curso(driver, curso):
    try:
        WebDriverWait(driver,
                      10).until(lambda useless: esta_seleccionado_curso(curso))
    except:
        raise excepciones.CursosException('No se pudo tener acceso al curso')