Пример #1
0
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
Пример #2
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)
Пример #3
0
def extraer_respuestas_entregas_curso(driver, ruta_salida, urlCurrent,
                                      urlStep2, urlStep3, etiqueta,
                                      cssClassEntrega):
    """
    Realiza una extraccion de todas las respuestas de todas las entregas de un curso
    """
    assert driver.current_url == urlCurrent
    index = 1
    for entrega, isGrupo in regresar_entregas(driver, urlCurrent,
                                              cssClassEntrega):
        nombre = str(index) + '.- ' + get_nombre_entrega(
            driver, entrega, urlCurrent)
        salidas.imprimir_salida(
            'Extrayendo datos de %s: %s' % (etiqueta, nombre), 2)
        ruta_entrega = almacenamiento.crear_ruta(ruta_salida, nombre)
        extraer_respuestas_entrega(driver, entrega, ruta_entrega, urlCurrent,
                                   urlStep2, urlStep3, etiqueta, isGrupo)
        driver.back()
        driver.refresh()
        index += 1
        try:
            WebDriverWait(
                driver,
                10).until(lambda browser: browser.current_url == urlCurrent)
        except:
            raise excepciones.EntregasException(
                'No se pudo tener acceso a las entregas')
Пример #4
0
def extraer_respuestas_entrega(driver,
                               entrega,
                               ruta_salida,
                               urlCurrent,
                               urlStep2,
                               urlStep3,
                               etiqueta,
                               grupo=False):
    """
    Guarda todos los recursos de una entrega creando una estructura de directorios en ruta
    """
    assert driver.current_url == urlCurrent
    ir_a_entrega(driver, entrega, urlCurrent)
    crear_screenshot_entrega(driver, ruta_salida, urlStep2)
    crear_descripcion_entrega(driver, ruta_salida, urlStep2)
    for matricula, alumno in regresar_alumnos_contestaron_entrega(
            driver, urlStep2, grupo):
        salidas.imprimir_salida('Extrayendo respuesta de %s' % matricula, 3)
        ruta_alumno = almacenamiento.crear_ruta(ruta_salida, matricula)
        ir_a_respuesta_alumno(driver, alumno, urlStep2)
        texto = regresar_texto_respuesta_alumno(driver, urlStep3)
        enlaces = regresar_enlaces_archivos_respuesta_alumno(driver, urlStep3)
        guardar_entrega_alumno(driver, texto, enlaces, ruta_alumno, urlStep3)
        driver.back()
        driver.refresh()
        try:
            WebDriverWait(driver, 10).until(
                EC.text_to_be_present_in_element((By.ID, 'EtiquetaTitulo1'),
                                                 etiqueta))
        except:
            raise excepciones.EntregasException(
                'No se puede acceder a la entrega solicitada')
Пример #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)
    nombre_curso = ruta.split('/')[-1]
    os.system(
        f'cd "{ruta}"; zip -r "{nombre_curso}.zip" "actividades" "evaluaciones"; rm -r actividades; rm -r evaluaciones'
    )