def carga_archivo_claro_drive(webdriver_test_ux: webdriver,
                              path_archivo_carga: str,
                              nombre_archivo_sin_ext: str, jsonEval):
    tiempo_step_inicio = Temporizador.obtener_tiempo_timer()
    fecha_inicio = Temporizador.obtener_fecha_tiempo_actual()

    try:
        btn_crear = webdriver_test_ux.find_element_by_class_name(
            'button-create-resource')
        btn_crear.click()
        time.sleep(10)

        WebDriverWait(webdriver_test_ux, 20).until(
            EC.presence_of_element_located((By.ID, 'file_upload_start')))

        input_file = webdriver_test_ux.find_element_by_id('file_upload_start')

        time.sleep(4)
        input_file.send_keys(path_archivo_carga)

        WebDriverWait(webdriver_test_ux, 720).until(
            EC.presence_of_element_located(
                (By.XPATH,
                 '//span[@class="name-without-extension"][text()="{} "]'.
                 format(nombre_archivo_sin_ext))))

        jsonEval["steps"][1]["output"][0]["status"] = jsonConst.SUCCESS
        jsonEval["steps"][1]["status"] = jsonConst.SUCCESS
        jsonEval["steps"][1]["output"][0][
            "output"] = 'Se realiza correctamente la carga del archivo'

    except selExcep.NoSuchElementException:
        jsonEval["steps"][1]["output"][0]["status"] = jsonConst.FAILED
        jsonEval["steps"][1]["status"] = jsonConst.FAILED
        jsonEval["steps"][1]["output"][0][
            "output"] = 'No fue posible realizar la carga del archivo'

    except selExcep.ElementClickInterceptedException:
        jsonEval["steps"][1]["output"][0]["status"] = jsonConst.FAILED
        jsonEval["steps"][1]["status"] = jsonConst.FAILED
        jsonEval["steps"][1]["output"][0][
            "output"] = 'No fue posible realizar la carga del archivo'

    tiempo_step_final = Temporizador.obtener_tiempo_timer(
    ) - tiempo_step_inicio
    fecha_fin = Temporizador.obtener_fecha_tiempo_actual()
    jsonEval["steps"][1]["time"] = FormatUtils.truncar_float_cadena(
        tiempo_step_final)
    jsonEval["steps"][1]["start"] = fecha_inicio
    jsonEval["steps"][1]["end"] = fecha_fin

    return jsonEval
def carga_archivo_claro_drive(webdriver_test_ux: webdriver, path_archivo_carga: str, nombre_archivo_sin_ext: str,
                              jsonEval):
    tiempo_step_inicio = Temporizador.obtener_tiempo_timer()
    fecha_inicio = Temporizador.obtener_fecha_tiempo_actual()

    try:
        carpeta_folder = WebDriverWait(webdriver_test_ux, 20).until(
            EC.element_to_be_clickable((By.XPATH, '//span[text()="Folder "][@class="name-without-extension"]')))
        carpeta_folder.click()

        WebDriverWait(webdriver_test_ux, 10).until(
            EC.element_to_be_clickable((By.XPATH, '//span[text()=" Folder "][@class="last"]')))

        input_file = WebDriverWait(webdriver_test_ux, 10).until(
            EC.presence_of_element_located((By.ID, 'file_upload_start')))

        input_file.send_keys(path_archivo_carga)

        ValidacionesHtml.verificar_ventana_archivo_duplicado(webdriver_test_ux)

        WebDriverWait(webdriver_test_ux, 720).until(EC.presence_of_element_located(
            (By.XPATH, '//span[@class="name-without-extension"][text()="{} "]'.format(nombre_archivo_sin_ext))))

        jsonEval["steps"][1]["output"][0]["status"] = jsonConst.SUCCESS
        jsonEval["steps"][1]["status"] = jsonConst.SUCCESS
        jsonEval["steps"][1]["output"][0]["output"] = 'Se realiza correctamente la carga del archivo'

    except NoSuchElementException:
        jsonEval["steps"][1]["output"][0]["status"] = jsonConst.FAILED
        jsonEval["steps"][1]["status"] = jsonConst.FAILED
        jsonEval["steps"][1]["output"][0]["output"] = 'No fue posible realizar la carga del archivo'

    except ElementClickInterceptedException:
        jsonEval["steps"][1]["output"][0]["status"] = jsonConst.FAILED
        jsonEval["steps"][1]["status"] = jsonConst.FAILED
        jsonEval["steps"][1]["output"][0]["output"] = 'No fue posible realizar la carga del archivo'

    except TimeoutException:
        jsonEval["steps"][1]["output"][0]["status"] = jsonConst.FAILED
        jsonEval["steps"][1]["status"] = jsonConst.FAILED
        jsonEval["steps"][1]["output"][0]["output"] = 'No fue posible realizar la carga del archivo'

    tiempo_step_final = Temporizador.obtener_tiempo_timer() - tiempo_step_inicio
    fecha_fin = Temporizador.obtener_fecha_tiempo_actual()
    jsonEval["steps"][1]["time"] = FormatUtils.truncar_float_cadena(tiempo_step_final)
    jsonEval["steps"][1]["start"] = fecha_inicio
    jsonEval["steps"][1]["end"] = fecha_fin

    return jsonEval
Beispiel #3
0
    def finalizar_tiempos_en_step(json_eval, indice: int, tiempo_step_inicio,
                                  fecha_inicio):

        if tiempo_step_inicio is None:
            tiempo_step_inicio = Temporizador.obtener_tiempo_timer()

        tiempo_step_final = Temporizador.obtener_tiempo_timer(
        ) - tiempo_step_inicio
        fecha_fin = Temporizador.obtener_fecha_tiempo_actual()
        json_eval["steps"][indice]["time"] = FormatUtils.truncar_float_cadena(
            tiempo_step_final)
        json_eval["steps"][indice]["start"] = fecha_inicio
        json_eval["steps"][indice]["end"] = fecha_fin

        return json_eval
def inicio_sesion_claro_drive(webdriver_test_ux: webdriver, jsonEval, jsonArgs):
    tiempo_step_inicio = Temporizador.obtener_tiempo_timer()
    fecha_inicio = Temporizador.obtener_fecha_tiempo_actual()

    try:
        webdriver_test_ux.get('https://www.clarodrive.com/')
        btn_inicio_sesion = WebDriverWait(webdriver_test_ux, 6).until(EC.presence_of_element_located((By.ID, 'login')))
        btn_inicio_sesion.click()

        input_email = WebDriverWait(webdriver_test_ux, 6).until(
            EC.presence_of_element_located((By.CLASS_NAME, 'InputEmail')))
        input_email.send_keys(jsonArgs['user'])

        input_password = WebDriverWait(webdriver_test_ux, 6).until(
            EC.presence_of_element_located((By.CLASS_NAME, 'InputPassword')))
        input_password.send_keys(jsonArgs['password'])

        btn_ingreso_cuenta = WebDriverWait(webdriver_test_ux, 6).until(
            EC.presence_of_element_located((By.XPATH, '//button[text()="INICIAR SESI\u00D3N"]')))
        btn_ingreso_cuenta.click()

        WebDriverWait(webdriver_test_ux, 120).until(
            EC.element_to_be_clickable((By.XPATH, '//span[text()="Folder "][@class="name-without-extension"]')))

        jsonEval["steps"][0]["output"][0]["status"] = jsonConst.SUCCESS
        jsonEval["steps"][0]["status"] = jsonConst.SUCCESS
        jsonEval["steps"][0]["output"][0]["output"] = 'Se ingresa correctamente al portal Claro Drive'

    except ElementNotInteractableException as e:
        jsonEval["steps"][0]["output"][0]["status"] = jsonConst.FAILED
        jsonEval["steps"][0]["status"] = jsonConst.FAILED
        jsonEval["steps"][0]["output"][0]["output"] = 'fue imposible ingresar al portal Claro Drive'
    except NoSuchElementException as e:
        jsonEval["steps"][0]["output"][0]["status"] = jsonConst.FAILED
        jsonEval["steps"][0]["status"] = jsonConst.FAILED
        jsonEval["steps"][0]["output"][0]["output"] = 'fue imposible ingresar al portal Claro Drive'
    except TimeoutException as e:
        jsonEval["steps"][0]["output"][0]["status"] = jsonConst.FAILED
        jsonEval["steps"][0]["status"] = jsonConst.FAILED
        jsonEval["steps"][0]["output"][0]["output"] = 'fue imposible ingresar al portal Claro Drive'

    tiempo_step_final = Temporizador.obtener_tiempo_timer() - tiempo_step_inicio
    fecha_fin = Temporizador.obtener_fecha_tiempo_actual()
    jsonEval["steps"][0]["time"] = FormatUtils.truncar_float_cadena(tiempo_step_final)
    jsonEval["steps"][0]["start"] = fecha_inicio
    jsonEval["steps"][0]["end"] = fecha_fin

    return jsonEval
def borrar_archivo_claro_drive(webdriver_test_ux: webdriver, jsonEval, nombre_archivo_sin_ext: str, ext_archivo: str):
    tiempo_step_inicio = Temporizador.obtener_tiempo_timer()
    fecha_inicio = Temporizador.obtener_fecha_tiempo_actual()

    try:

        webdriver_test_ux.refresh()

        archivo_por_eliminar = WebDriverWait(webdriver_test_ux, 20).until(
            EC.element_to_be_clickable(
                (By.XPATH, '//span[@class="name-without-extension"][text()="{} "]'.format(nombre_archivo_sin_ext))))

        archivo_por_eliminar.click()

        btn_borrar = WebDriverWait(webdriver_test_ux, 20).until(EC.element_to_be_clickable(
            (By.XPATH, '//input[@type="button"][@class="menuItem svg deleteImage icon-delete icon-32"]')))

        btn_borrar.click()

        jsonEval["steps"][3]["output"][0]["status"] = jsonConst.SUCCESS
        jsonEval["steps"][3]["status"] = jsonConst.SUCCESS
        jsonEval["steps"][3]["output"][0]["output"] = 'Se realiza el borrado del archivo correctamente'
    except NoSuchElementException as e:
        jsonEval["steps"][3]["output"][0]["status"] = jsonConst.FAILED
        jsonEval["steps"][3]["status"] = jsonConst.FAILED
        jsonEval["steps"][3]["output"][0][
            "output"] = 'No fue posible realizar el borrado del archivo correctamente: {}'.format(e.msg)

    except ElementClickInterceptedException as e:
        jsonEval["steps"][3]["output"][0]["status"] = jsonConst.FAILED
        jsonEval["steps"][3]["status"] = jsonConst.FAILED
        jsonEval["steps"][3]["output"][0][
            "output"] = 'No fue posible realizar el borrado del archivo correctamente: {}'.format(e.msg)

    except TimeoutException as e:
        jsonEval["steps"][3]["output"][0]["status"] = jsonConst.FAILED
        jsonEval["steps"][3]["status"] = jsonConst.FAILED
        jsonEval["steps"][3]["output"][0][
            "output"] = 'No fue posible realizar el borrado del archivo correctamente: {}'.format(e.msg)

    tiempo_step_final = Temporizador.obtener_tiempo_timer() - tiempo_step_inicio
    fecha_fin = Temporizador.obtener_fecha_tiempo_actual()
    jsonEval["steps"][3]["time"] = FormatUtils.truncar_float_cadena(tiempo_step_final)
    jsonEval["steps"][3]["start"] = fecha_inicio
    jsonEval["steps"][3]["end"] = fecha_fin

    return jsonEval
def cerrar_sesion_claro_drive(webdriver_test_ux: webdriver, jsonEval):
    tiempo_step_inicio = Temporizador.obtener_tiempo_timer()
    fecha_inicio = Temporizador.obtener_fecha_tiempo_actual()

    try:
        webdriver_test_ux.refresh()
        boton_ajustes = WebDriverWait(webdriver_test_ux, 10).until(EC.element_to_be_clickable((By.ID, 'expand')))
        boton_ajustes.click()

        boton_cerrar_sesion = WebDriverWait(webdriver_test_ux, 20).until(
            EC.element_to_be_clickable((By.XPATH, '//li[@data-id="logout"]/a')))

        boton_cerrar_sesion.click()
        WebDriverWait(webdriver_test_ux, 10).until(EC.presence_of_element_located((By.ID, 'login')))

        jsonEval["steps"][4]["output"][0]["status"] = jsonConst.SUCCESS
        jsonEval["steps"][4]["status"] = jsonConst.SUCCESS
        jsonEval["steps"][4]["output"][0]["output"] = 'Se cierra sesion correctamente'

    except NoSuchElementException as e:
        jsonEval["steps"][4]["output"][0]["status"] = jsonConst.FAILED
        jsonEval["steps"][4]["status"] = jsonConst.FAILED
        jsonEval["steps"][4]["output"][0]["output"] = 'No fue posible realizar el cierre de sesion: {}'.format(e.msg)

    except ElementClickInterceptedException as e:
        jsonEval["steps"][4]["output"][0]["status"] = jsonConst.FAILED
        jsonEval["steps"][4]["status"] = jsonConst.FAILED
        jsonEval["steps"][4]["output"][0]["output"] = 'No fue posible realizar el cierre de sesion: {}'.format(e.msg)

    except TimeoutException as e:
        jsonEval["steps"][4]["output"][0]["status"] = jsonConst.FAILED
        jsonEval["steps"][4]["status"] = jsonConst.FAILED
        jsonEval["steps"][4]["output"][0]["output"] = 'No fue posible realizar el cierre de sesion: {}'.format(e.msg)

    except ElementNotInteractableException as e:
        jsonEval["steps"][4]["output"][0]["status"] = jsonConst.FAILED
        jsonEval["steps"][4]["status"] = jsonConst.FAILED
        jsonEval["steps"][4]["output"][0]["output"] = 'No fue posible realizar el cierre de sesion: {}'.format(e.msg)

    tiempo_step_final = Temporizador.obtener_tiempo_timer() - tiempo_step_inicio
    fecha_fin = Temporizador.obtener_fecha_tiempo_actual()
    jsonEval["steps"][4]["time"] = FormatUtils.truncar_float_cadena(tiempo_step_final)
    jsonEval["steps"][4]["start"] = fecha_inicio
    jsonEval["steps"][4]["end"] = fecha_fin

    return jsonEval
def descarga_archivo_claro_drive(webdriver_test_ux: webdriver,
                                 nombre_archivo_sin_ext: str, jsonEval):
    tiempo_step_inicio = Temporizador.obtener_tiempo_timer()
    fecha_inicio = Temporizador.obtener_fecha_tiempo_actual()

    try:
        time.sleep(5)
        img_por_descargar = webdriver_test_ux.find_element_by_xpath(
            '//span[@class="name-without-extension"][text()="{} "]'.format(
                nombre_archivo_sin_ext))
        img_por_descargar.click()
        time.sleep(4)

        btn_descarga = webdriver_test_ux.find_element_by_xpath(
            '//input[@class="menuItem svg downloadImage icon-download icon-32"]'
        )
        btn_descarga.click()
        time.sleep(4)

        jsonEval["steps"][2]["output"][0]["status"] = jsonConst.SUCCESS
        jsonEval["steps"][2]["status"] = jsonConst.SUCCESS
        jsonEval["steps"][2]["output"][0][
            "output"] = 'Se realiza la descarga del archivo correctamente'
    except selExcep.NoSuchElementException:
        jsonEval["steps"][2]["output"][0]["status"] = jsonConst.FAILED
        jsonEval["steps"][2]["status"] = jsonConst.FAILED
        jsonEval["steps"][2]["output"][0][
            "output"] = 'No fue posible realizar la descarga del archivo correctamente'
    except selExcep.ElementClickInterceptedException:
        jsonEval["steps"][2]["output"][0]["status"] = jsonConst.FAILED
        jsonEval["steps"][2]["status"] = jsonConst.FAILED
        jsonEval["steps"][2]["output"][0][
            "output"] = 'No fue posible realizar la descarga del archivo correctamente'

    tiempo_step_final = Temporizador.obtener_tiempo_timer(
    ) - tiempo_step_inicio
    fecha_fin = Temporizador.obtener_fecha_tiempo_actual()
    jsonEval["steps"][2]["time"] = FormatUtils.truncar_float_cadena(
        tiempo_step_final)
    jsonEval["steps"][2]["start"] = fecha_inicio
    jsonEval["steps"][2]["end"] = fecha_fin

    return jsonEval
Beispiel #8
0
    def generar_json_inicio_de_sesion_incorrecta(json_eval, tiempo_step_inicio,
                                                 fecha_inicio, indice: int,
                                                 msg_output: str):

        if tiempo_step_inicio is None:
            tiempo_step_inicio = Temporizador.obtener_tiempo_timer()

        json_eval["steps"][indice]["output"][0]["status"] = json_const.FAILED
        json_eval["steps"][indice]["status"] = json_const.FAILED
        json_eval["steps"][indice]["output"][0]["output"] = msg_output

        tiempo_step_final = Temporizador.obtener_tiempo_timer(
        ) - tiempo_step_inicio
        fecha_fin = Temporizador.obtener_fecha_tiempo_actual()

        json_eval["steps"][indice]["time"] = FormatUtils.truncar_float_cadena(
            tiempo_step_final)
        json_eval["steps"][indice]["start"] = fecha_inicio
        json_eval["steps"][indice]["end"] = fecha_fin

        return json_eval
def cerrar_sesion_claro_drive(webdriver_test_ux: webdriver, jsonEval):
    tiempo_step_inicio = Temporizador.obtener_tiempo_timer()
    fecha_inicio = Temporizador.obtener_fecha_tiempo_actual()

    try:
        boton_ajustes = webdriver_test_ux.find_element_by_id('expand')
        boton_ajustes.click()

        time.sleep(4)
        boton_cerrar_sesion = webdriver_test_ux.find_element_by_xpath(
            '//li[@data-id="logout"]')
        boton_cerrar_sesion.click()
        time.sleep(10)

        jsonEval["steps"][4]["output"][0]["status"] = jsonConst.SUCCESS
        jsonEval["steps"][4]["status"] = jsonConst.SUCCESS
        jsonEval["steps"][4]["output"][0][
            "output"] = 'Se cierra sesion correctamente'

    except selExcep.NoSuchElementException:
        jsonEval["steps"][4]["output"][0]["status"] = jsonConst.FAILED
        jsonEval["steps"][4]["status"] = jsonConst.FAILED
        jsonEval["steps"][4]["output"][0][
            "output"] = 'No fue posible realizar el cierre de sesion'

    except selExcep.ElementClickInterceptedException:
        jsonEval["steps"][4]["output"][0]["status"] = jsonConst.FAILED
        jsonEval["steps"][4]["status"] = jsonConst.FAILED
        jsonEval["steps"][4]["output"][0][
            "output"] = 'No fue posible realizar el cierre de sesion'

    tiempo_step_final = Temporizador.obtener_tiempo_timer(
    ) - tiempo_step_inicio
    fecha_fin = Temporizador.obtener_fecha_tiempo_actual()
    jsonEval["steps"][4]["time"] = FormatUtils.truncar_float_cadena(
        tiempo_step_final)
    jsonEval["steps"][4]["start"] = fecha_inicio
    jsonEval["steps"][4]["end"] = fecha_fin

    return jsonEval
def borrar_archivo_claro_drive(webdriver_test_ux: webdriver, jsonEval):
    tiempo_step_inicio = Temporizador.obtener_tiempo_timer()
    fecha_inicio = Temporizador.obtener_fecha_tiempo_actual()

    try:
        btn_borrar = webdriver_test_ux.find_element_by_xpath(
            '//input[@class="menuItem svg deleteImage icon-delete icon-32"]')
        btn_borrar.click()
        time.sleep(10)
        btn_cerrar = webdriver_test_ux.find_element_by_xpath(
            '//input[@class="svg exit icon-close icon-32"]')
        time.sleep(4)
        btn_cerrar.click()
        time.sleep(4)

        jsonEval["steps"][3]["output"][0]["status"] = jsonConst.SUCCESS
        jsonEval["steps"][3]["status"] = jsonConst.SUCCESS
        jsonEval["steps"][3]["output"][0][
            "output"] = 'Se realiza el borrado del archivo correctamente'
    except selExcep.NoSuchElementException:
        jsonEval["steps"][3]["output"][0]["status"] = jsonConst.FAILED
        jsonEval["steps"][3]["status"] = jsonConst.FAILED
        jsonEval["steps"][3]["output"][0][
            "output"] = 'No fue posibles realizar el borrado del archivo correctamente'

    except selExcep.ElementClickInterceptedException:
        jsonEval["steps"][3]["output"][0]["status"] = jsonConst.FAILED
        jsonEval["steps"][3]["status"] = jsonConst.FAILED
        jsonEval["steps"][3]["output"][0][
            "output"] = 'No fue posibles realizar el borrado del archivo correctamente'

    tiempo_step_final = Temporizador.obtener_tiempo_timer(
    ) - tiempo_step_inicio
    fecha_fin = Temporizador.obtener_fecha_tiempo_actual()
    jsonEval["steps"][3]["time"] = FormatUtils.truncar_float_cadena(
        tiempo_step_final)
    jsonEval["steps"][3]["start"] = fecha_inicio
    jsonEval["steps"][3]["end"] = fecha_fin

    return jsonEval
def cerrar_sesion_dropbox(webdriver_test_ux: WebDriver, json_eval):
    tiempo_step_inicio = Temporizador.obtener_tiempo_timer()
    fecha_inicio = Temporizador.obtener_fecha_tiempo_actual()

    try:
        boton_imagen_perfil = WebDriverWait(webdriver_test_ux, 12).until(
            EC.element_to_be_clickable((By.CLASS_NAME, 'dig-Menu')))

        boton_imagen_perfil.click()

        boton_salir_sesion = WebDriverWait(webdriver_test_ux, 12).until(
            EC.element_to_be_clickable((By.XPATH, '//span[text()="Salir"]')))

        boton_salir_sesion.click()

        WebDriverWait(webdriver_test_ux, 12).until(
            EC.element_to_be_clickable((By.NAME, 'login_email')))

        WebDriverWait(webdriver_test_ux, 12).until(
            EC.element_to_be_clickable((By.NAME, 'login_password')))

        json_eval["steps"][4]["output"][0]["status"] = jsonConst.SUCCESS
        json_eval["steps"][4]["status"] = jsonConst.SUCCESS
        json_eval["steps"][4]["output"][0][
            "output"] = 'Se cierra sesion correctamente dentro del portal Drop Box'

    except ElementNotInteractableException as e:
        json_eval["steps"][4]["output"][0]["status"] = jsonConst.FAILED
        json_eval["steps"][4]["status"] = jsonConst.FAILED
        json_eval["steps"][4]["output"][0][
            "output"] = 'fue imposible cerrar sesion dentro del portal Drop Box: {}'.format(
                e.msg)

    except NoSuchElementException as e:
        json_eval["steps"][4]["output"][0]["status"] = jsonConst.FAILED
        json_eval["steps"][4]["status"] = jsonConst.FAILED
        json_eval["steps"][4]["output"][0][
            "output"] = 'fue imposible cerrar sesion dentro del portal Drop Box: {}'.format(
                e.msg)

    except TimeoutException as e:
        json_eval["steps"][4]["output"][0]["status"] = jsonConst.FAILED
        json_eval["steps"][4]["status"] = jsonConst.FAILED
        json_eval["steps"][4]["output"][0][
            "output"] = 'fue imposible cerrar sesion dentro del portal Drop Box: {}'.format(
                e.msg)

    except ElementClickInterceptedException as e:
        json_eval["steps"][4]["output"][0]["status"] = jsonConst.FAILED
        json_eval["steps"][4]["status"] = jsonConst.FAILED
        json_eval["steps"][4]["output"][0][
            "output"] = 'fue imposible cerrar sesion dentro del portal Drop Box: {}'.format(
                e.msg)

    tiempo_step_final = Temporizador.obtener_tiempo_timer(
    ) - tiempo_step_inicio
    fecha_fin = Temporizador.obtener_fecha_tiempo_actual()
    json_eval["steps"][4]["time"] = FormatUtils.truncar_float_cadena(
        tiempo_step_final)
    json_eval["steps"][4]["start"] = fecha_inicio
    json_eval["steps"][4]["end"] = fecha_fin

    return json_eval
def eliminar_archivo_dropbox(webdriver_test_ux: WebDriver, json_eval,
                             nombre_archivo_con_ext):
    tiempo_step_inicio = Temporizador.obtener_tiempo_timer()
    fecha_inicio = Temporizador.obtener_fecha_tiempo_actual()

    try:

        archivo_por_descargar = WebDriverWait(webdriver_test_ux, 20).until(
            EC.element_to_be_clickable(
                (By.XPATH,
                 '//tr[@data-filename="{}"]'.format(nombre_archivo_con_ext))))

        btn_mas_acciones = WebDriverWait(archivo_por_descargar, 20).until(
            EC.element_to_be_clickable(
                (By.CLASS_NAME, 'browse-overflow-menu')))

        btn_mas_acciones.click()

        btn_eliminar = WebDriverWait(webdriver_test_ux, 20).until(
            EC.element_to_be_clickable((By.CLASS_NAME, 'action-delete')))

        btn_eliminar.click()

        btn_eliminar_modal = WebDriverWait(webdriver_test_ux, 20).until(
            EC.element_to_be_clickable(
                (By.XPATH,
                 '//span[@class="mc-button-content"][text()="Eliminar"]')))

        btn_eliminar_modal.click()

        WebDriverWait(webdriver_test_ux, 30).until(
            EC.element_to_be_clickable((
                By.XPATH,
                '//p[@class="mc-snackbar-title"][text()="Se elimin\u00F3 1 elemento."]'
            )))

        json_eval["steps"][3]["output"][0]["status"] = jsonConst.SUCCESS
        json_eval["steps"][3]["status"] = jsonConst.SUCCESS
        json_eval["steps"][3]["output"][0][
            "output"] = 'Se elimina archivo correctamente dentro del portal Drop Box'

    except ElementNotInteractableException as e:
        json_eval["steps"][3]["output"][0]["status"] = jsonConst.FAILED
        json_eval["steps"][3]["status"] = jsonConst.FAILED
        json_eval["steps"][3]["output"][0][
            "output"] = 'fue imposible eliminar el archivo dentro del portal Drop Box: {}'.format(
                e)
    except NoSuchElementException as e:
        json_eval["steps"][3]["output"][0]["status"] = jsonConst.FAILED
        json_eval["steps"][3]["status"] = jsonConst.FAILED
        json_eval["steps"][3]["output"][0][
            "output"] = 'fue imposible eliminar el archivo dentro del portal Drop Box: {}'.format(
                e)
    except TimeoutException as e:
        json_eval["steps"][3]["output"][0]["status"] = jsonConst.FAILED
        json_eval["steps"][3]["status"] = jsonConst.FAILED
        json_eval["steps"][3]["output"][0][
            "output"] = 'fue imposible eliminar el archivo dentro del portal Drop Box: {}'.format(
                e)
    except ElementClickInterceptedException as e:
        json_eval["steps"][3]["output"][0]["status"] = jsonConst.FAILED
        json_eval["steps"][3]["status"] = jsonConst.FAILED
        json_eval["steps"][3]["output"][0][
            "output"] = 'fue imposible eliminar el archivo dentro del portal Drop Box: {}'.format(
                e)

    tiempo_step_final = Temporizador.obtener_tiempo_timer(
    ) - tiempo_step_inicio
    fecha_fin = Temporizador.obtener_fecha_tiempo_actual()
    json_eval["steps"][3]["time"] = FormatUtils.truncar_float_cadena(
        tiempo_step_final)
    json_eval["steps"][3]["start"] = fecha_inicio
    json_eval["steps"][3]["end"] = fecha_fin

    return json_eval
def inicio_sesion_dropbox(webdriver_test_ux: WebDriver, json_eval, json_args,
                          url_login):
    tiempo_step_inicio = Temporizador.obtener_tiempo_timer()
    fecha_inicio = Temporizador.obtener_fecha_tiempo_actual()

    try:
        webdriver_test_ux.get(url_login)

        btn_inicio_sesion = WebDriverWait(webdriver_test_ux, 6).until(
            EC.element_to_be_clickable(
                (By.XPATH, '//button[@class="auth-google button-primary"]')))
        btn_inicio_sesion.click()

        if ValidacionesHtml.se_encuentran_mas_ventanas_en_sesion(
                webdriver_test_ux, 6):
            ventana_padre = webdriver_test_ux.window_handles[0]
            ventana_hija = webdriver_test_ux.window_handles[1]

            webdriver_test_ux.switch_to.window(ventana_hija)

        input_correo_gmail = WebDriverWait(webdriver_test_ux, 6).until(
            EC.element_to_be_clickable((By.ID, 'Email')))
        input_correo_gmail.send_keys(json_args['user'])

        btn_next_gmail_sec_email = WebDriverWait(webdriver_test_ux, 6).until(
            EC.element_to_be_clickable((By.ID, 'next')))
        btn_next_gmail_sec_email.click()

        input_pass_gmail = WebDriverWait(webdriver_test_ux, 60).until(
            EC.presence_of_element_located((By.ID, 'password')))
        input_pass_gmail.send_keys(json_args['password'])

        btn_next_gmail_sec_password = WebDriverWait(
            webdriver_test_ux,
            6).until(EC.element_to_be_clickable((By.ID, 'submit')))
        btn_next_gmail_sec_password.click()

        # input_correo_gmail = WebDriverWait(webdriver_test_ux, 6).until(
        #     EC.element_to_be_clickable((By.ID, 'identifierId')))
        # input_correo_gmail.send_keys(json_args['user'])
        #
        # btn_next_gmail_sec_email = WebDriverWait(webdriver_test_ux, 6).until(
        #     EC.element_to_be_clickable((By.ID, 'identifierNext')))
        # btn_next_gmail_sec_email.click()
        #
        # input_pass_gmail = WebDriverWait(webdriver_test_ux, 60).until(
        #     EC.presence_of_element_located((By.NAME, 'password')))
        # input_pass_gmail.send_keys(json_args['password'])
        #
        # btn_next_gmail_sec_password = WebDriverWait(webdriver_test_ux, 6).until(
        #     EC.element_to_be_clickable((By.ID, 'passwordNext')))
        # btn_next_gmail_sec_password.click()

        webdriver_test_ux.switch_to.window(ventana_padre)

        WebDriverWait(webdriver_test_ux, 10).until(
            EC.element_to_be_clickable(
                (By.CLASS_NAME, 'maestro-nav__contents')))

        json_eval["steps"][0]["output"][0]["status"] = jsonConst.SUCCESS
        json_eval["steps"][0]["status"] = jsonConst.SUCCESS
        json_eval["steps"][0]["output"][0][
            "output"] = 'Se ingresa correctamente al portal Drop Box'

    except ElementNotInteractableException as e:
        json_eval["steps"][0]["output"][0]["status"] = jsonConst.FAILED
        json_eval["steps"][0]["status"] = jsonConst.FAILED
        json_eval["steps"][0]["output"][0][
            "output"] = 'fue imposible ingresar al portal Drop Box: {}'.format(
                e.msg)
    except NoSuchElementException as e:
        json_eval["steps"][0]["output"][0]["status"] = jsonConst.FAILED
        json_eval["steps"][0]["status"] = jsonConst.FAILED
        json_eval["steps"][0]["output"][0][
            "output"] = 'fue imposible ingresar al portal Drop Box: {}'.format(
                e.msg)
    except TimeoutException as e:
        json_eval["steps"][0]["output"][0]["status"] = jsonConst.FAILED
        json_eval["steps"][0]["status"] = jsonConst.FAILED
        json_eval["steps"][0]["output"][0][
            "output"] = 'fue imposible ingresar al portal Drop Box: {}'.format(
                e.msg)
    except ElementClickInterceptedException as e:
        json_eval["steps"][0]["output"][0]["status"] = jsonConst.FAILED
        json_eval["steps"][0]["status"] = jsonConst.FAILED
        json_eval["steps"][0]["output"][0][
            "output"] = 'fue imposible ingresar al portal Drop Box: {}'.format(
                e.msg)

    tiempo_step_final = Temporizador.obtener_tiempo_timer(
    ) - tiempo_step_inicio
    fecha_fin = Temporizador.obtener_fecha_tiempo_actual()
    json_eval["steps"][0]["time"] = FormatUtils.truncar_float_cadena(
        tiempo_step_final)
    json_eval["steps"][0]["start"] = fecha_inicio
    json_eval["steps"][0]["end"] = fecha_fin

    return json_eval
def descargar_archivo_dropbox(webdriver_test_ux: WebDriver, json_eval,
                              nombre_archivo_con_ext):
    tiempo_step_inicio = Temporizador.obtener_tiempo_timer()
    fecha_inicio = Temporizador.obtener_fecha_tiempo_actual()

    try:
        ValidacionesHtml.verificar_remover_ventana_configuracion(
            webdriver_test_ux)

        search_bar = WebDriverWait(webdriver_test_ux, 20).until(
            EC.element_to_be_clickable((By.CLASS_NAME, 'search__input')))

        search_bar.send_keys(nombre_archivo_con_ext)
        time.sleep(1)
        search_bar.send_keys(Keys.RETURN)

        archivo_por_descargar = WebDriverWait(webdriver_test_ux, 20).until(
            EC.element_to_be_clickable(
                (By.XPATH,
                 '//tr[@data-filename="{}"]'.format(nombre_archivo_con_ext))))

        btn_mas_acciones = WebDriverWait(archivo_por_descargar, 20).until(
            EC.element_to_be_clickable(
                (By.CLASS_NAME, 'browse-overflow-menu')))

        btn_mas_acciones.click()

        btn_descargar = WebDriverWait(webdriver_test_ux, 20).until(
            EC.element_to_be_clickable((By.CLASS_NAME, 'action-download')))

        btn_descargar.click()

        json_eval["steps"][2]["output"][0]["status"] = jsonConst.SUCCESS
        json_eval["steps"][2]["status"] = jsonConst.SUCCESS
        json_eval["steps"][2]["output"][0][
            "output"] = 'Se descarga correctamente el archivo dentro del portal Drop Box'

    except ElementNotInteractableException as e:
        json_eval["steps"][2]["output"][0]["status"] = jsonConst.FAILED
        json_eval["steps"][2]["status"] = jsonConst.FAILED
        json_eval["steps"][2]["output"][0][
            "output"] = 'fue imposible descargar el archivo dentro del portal Drop Box: {}'.format(
                e.msg)
    except NoSuchElementException as e:
        json_eval["steps"][2]["output"][0]["status"] = jsonConst.FAILED
        json_eval["steps"][2]["status"] = jsonConst.FAILED
        json_eval["steps"][2]["output"][0][
            "output"] = 'fue imposible descargar el archivo dentro del portal Drop Box: {}'.format(
                e.msg)
    except TimeoutException as e:
        json_eval["steps"][2]["output"][0]["status"] = jsonConst.FAILED
        json_eval["steps"][2]["status"] = jsonConst.FAILED
        json_eval["steps"][2]["output"][0][
            "output"] = 'fue imposible descargar el archivo dentro del portal Drop Box: {}'.format(
                e.msg)
    except ElementClickInterceptedException as e:
        json_eval["steps"][2]["output"][0]["status"] = jsonConst.FAILED
        json_eval["steps"][2]["status"] = jsonConst.FAILED
        json_eval["steps"][2]["output"][0][
            "output"] = 'fue imposible descargar el archivo dentro del portal Drop Box: {}'.format(
                e.msg)
    except StaleElementReferenceException as e:
        json_eval["steps"][2]["output"][0]["status"] = jsonConst.FAILED
        json_eval["steps"][2]["status"] = jsonConst.FAILED
        json_eval["steps"][2]["output"][0][
            "output"] = 'fue imposible descargar el archivo dentro del portal Drop Box: {}'.format(
                e.msg)

    tiempo_step_final = Temporizador.obtener_tiempo_timer(
    ) - tiempo_step_inicio
    fecha_fin = Temporizador.obtener_fecha_tiempo_actual()
    json_eval["steps"][2]["time"] = FormatUtils.truncar_float_cadena(
        tiempo_step_final)
    json_eval["steps"][2]["start"] = fecha_inicio
    json_eval["steps"][2]["end"] = fecha_fin

    return json_eval
def cargar_archivo_dropbox(webdriver_test_ux: WebDriver, json_eval, json_args,
                           nombre_archivo_sin_ext, nombre_archivo_con_ext):
    tiempo_step_inicio = Temporizador.obtener_tiempo_timer()
    fecha_inicio = Temporizador.obtener_fecha_tiempo_actual()

    try:
        ValidacionesHtml.verificar_remover_ventana_configuracion(
            webdriver_test_ux)
        ValidacionesHtml.verificar_archivo_ya_existente_en_portal(
            webdriver_test_ux, nombre_archivo_sin_ext)

        input_carga_de_archivo = WebDriverWait(webdriver_test_ux, 10).until(
            EC.presence_of_element_located(
                (By.XPATH, '//body/div/div/input[1]')))

        input_carga_de_archivo.send_keys(json_args['pathImage'])

        WebDriverWait(webdriver_test_ux, 12).until(
            EC.presence_of_element_located(
                (By.XPATH,
                 '//div[@class="mc-util-modal-header"][text()="Cargar a…"]')))

        WebDriverWait(webdriver_test_ux, 12).until(
            EC.presence_of_element_located(
                (By.XPATH,
                 '//tbody[@class="mc-table-body folder-picker-view"]')))

        btn_cargar = WebDriverWait(webdriver_test_ux, 12).until(
            EC.element_to_be_clickable(
                (By.XPATH,
                 '//span[@class="mc-button-content"][text()="Cargar"]')))

        btn_cargar.click()

        WebDriverWait(webdriver_test_ux, 720).until(
            EC.presence_of_element_located(
                (By.XPATH,
                 '//p[@class="mc-snackbar-title"][text()="Se carg\u00F3 {}."]'.
                 format(nombre_archivo_con_ext))))

        btn_cerrar_progreso_carga = WebDriverWait(webdriver_test_ux, 10).until(
            EC.presence_of_element_located(
                (By.XPATH,
                 '//span[@class="mc-button-content"][text()="Cerrar"]')))

        btn_cerrar_progreso_carga.click()

        webdriver_test_ux.refresh()

        json_eval["steps"][1]["output"][0]["status"] = jsonConst.SUCCESS
        json_eval["steps"][1]["status"] = jsonConst.SUCCESS
        json_eval["steps"][1]["output"][0][
            "output"] = 'Se carga el archivo correctamente dentro del portal Drop Box'

    except ElementNotInteractableException as e:
        json_eval["steps"][1]["output"][0]["status"] = jsonConst.FAILED
        json_eval["steps"][1]["status"] = jsonConst.FAILED
        json_eval["steps"][1]["output"][0][
            "output"] = 'fue imposible cargar el archivo dentro del portal Drop Box: {}'.format(
                e.msg)
    except NoSuchElementException as e:
        json_eval["steps"][1]["output"][0]["status"] = jsonConst.FAILED
        json_eval["steps"][1]["status"] = jsonConst.FAILED
        json_eval["steps"][1]["output"][0][
            "output"] = 'fue imposible cargar el archivo dentro del portal Drop Box: {}'.format(
                e.msg)
    except TimeoutException as e:
        json_eval["steps"][1]["output"][0]["status"] = jsonConst.FAILED
        json_eval["steps"][1]["status"] = jsonConst.FAILED
        json_eval["steps"][1]["output"][0][
            "output"] = 'fue imposible cargar el archivo dentro del portal Drop Box: {}'.format(
                e.msg)
    except ElementClickInterceptedException as e:
        json_eval["steps"][1]["output"][0]["status"] = jsonConst.FAILED
        json_eval["steps"][1]["status"] = jsonConst.FAILED
        json_eval["steps"][1]["output"][0][
            "output"] = 'fue imposible cargar el archivo dentro del portal Drop Box: {}'.format(
                e.msg)

    tiempo_step_final = Temporizador.obtener_tiempo_timer(
    ) - tiempo_step_inicio
    fecha_fin = Temporizador.obtener_fecha_tiempo_actual()
    json_eval["steps"][1]["time"] = FormatUtils.truncar_float_cadena(
        tiempo_step_final)
    json_eval["steps"][1]["start"] = fecha_inicio
    json_eval["steps"][1]["end"] = fecha_fin

    return json_eval