def eliminar_archivo_dropbox(self, webdriver_test_ux: WebDriver, json_eval, nombre_archivo_con_ext): tiempo_step_inicio = Temporizador.obtener_tiempo_timer() fecha_inicio = Temporizador.obtener_fecha_tiempo_actual() if not UtilsEvaluaciones.se_ingreso_correctamente_a_la_sesion( json_eval): json_eval = UtilsEvaluaciones.generar_json_inicio_de_sesion_incorrecta( json_eval, tiempo_step_inicio, fecha_inicio, 4, constantes_evaluaciones_claro_drive. MSG_ELIMINACION_ARCHIVO_FALLIDA_POR_CARGA_ARCHIVO_FALLIDA) return json_eval try: archivo_por_eliminar = HtmlActions.webdriver_wait_element_to_be_clickable( webdriver_test_ux, 20, xpath='//tr[@data-filename="{}"]'.format( nombre_archivo_con_ext)) # HtmlActions.click_html_element(archivo_por_eliminar, xpath='//tr[@data-filename="{}"]') # btn_mas_acciones = HtmlActions.webdriver_wait_element_to_be_clickable( archivo_por_eliminar, 20, xpath='//button[@data-testid="action-bar-overflow"]') HtmlActions.click_html_element( btn_mas_acciones, xpath='//button[@data-testid="action-bar-overflow"]') btn_eliminar = HtmlActions.webdriver_wait_element_to_be_clickable( webdriver_test_ux, 20, xpath='//div[@class="dig-Menu-row-title"][text()="Eliminar"]') HtmlActions.click_html_element( btn_eliminar, xpath='//div[@class="dig-Menu-row-title"][text()="Eliminar"]') btn_eliminar_modal = HtmlActions.webdriver_wait_element_to_be_clickable( webdriver_test_ux, 20, xpath='//span[@class="dig-Button-content"][text()="Eliminar"]') HtmlActions.click_html_element( btn_eliminar_modal, xpath='//span[@class="dig-Button-content"][text()="Eliminar"]') HtmlActions.webdriver_wait_presence_of_element_located( webdriver_test_ux, 30, xpath= '//span[@class="dig-Snackbar-message "][text()="Se elimin\u00F3 1 elemento."]' ) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 4, 0, True, constantes_evaluaciones_claro_drive. MSG_OUTPUT_BORRADO_ARCHIVO_EXITOSO) except ElementNotInteractableException as e: msg_output = constantes_evaluaciones_claro_drive.MSG_OUTPUT_BORRADO_ARCHIVO_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 4, 0, False, msg_output) except NoSuchElementException as e: msg_output = constantes_evaluaciones_claro_drive.MSG_OUTPUT_BORRADO_ARCHIVO_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 4, 0, False, msg_output) except TimeoutException as e: msg_output = constantes_evaluaciones_claro_drive.MSG_OUTPUT_BORRADO_ARCHIVO_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 4, 0, False, msg_output) except ElementClickInterceptedException as e: msg_output = constantes_evaluaciones_claro_drive.MSG_OUTPUT_BORRADO_ARCHIVO_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 4, 0, False, msg_output) json_eval = UtilsEvaluaciones.finalizar_tiempos_en_step( json_eval, 4, tiempo_step_inicio, fecha_inicio) return json_eval
def cerrar_sesion_dropbox(self, webdriver_test_ux: WebDriver, json_eval): tiempo_step_inicio = Temporizador.obtener_tiempo_timer() fecha_inicio = Temporizador.obtener_fecha_tiempo_actual() if not UtilsEvaluaciones.se_ingreso_correctamente_a_la_sesion( json_eval): json_eval = UtilsEvaluaciones.generar_json_inicio_de_sesion_incorrecta( json_eval, tiempo_step_inicio, fecha_inicio, 5, constantes_evaluaciones_claro_drive. MSG_CIERRE_SESION_FALLIDA_POR_INICIO_DE_SESION) return json_eval try: boton_imagen_perfil = HtmlActions.webdriver_wait_element_to_be_clickable( webdriver_test_ux, 12, class_name='account-menu-v2__avatar') HtmlActions.click_html_element( boton_imagen_perfil, class_name='account-menu-v2__avatar') boton_salir_sesion = HtmlActions.webdriver_wait_element_to_be_clickable( webdriver_test_ux, 12, xpath='//div[@class="dig-Menu-row-title"][text()="Salir"]') HtmlActions.click_html_element( boton_salir_sesion, xpath='//div[@class="dig-Menu-row-title"][text()="Salir') HtmlActions.webdriver_wait_presence_of_element_located( webdriver_test_ux, 10, name='login_email') HtmlActions.webdriver_wait_presence_of_element_located( webdriver_test_ux, 10, name='login_password') json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 5, 0, True, constantes_evaluaciones_claro_drive. MSG_OUTPUT_CIERRE_SESION_EXITOSO) except ElementNotInteractableException as e: msg_output = constantes_evaluaciones_claro_drive.MSG_OUTPUT_CIERRE_SESION_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 5, 0, False, msg_output) except NoSuchElementException as e: msg_output = constantes_evaluaciones_claro_drive.MSG_OUTPUT_CIERRE_SESION_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 5, 0, False, msg_output) except TimeoutException as e: msg_output = constantes_evaluaciones_claro_drive.MSG_OUTPUT_CIERRE_SESION_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 5, 0, False, msg_output) except ElementClickInterceptedException as e: msg_output = constantes_evaluaciones_claro_drive.MSG_OUTPUT_CIERRE_SESION_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 5, 0, False, msg_output) json_eval = UtilsEvaluaciones.finalizar_tiempos_en_step( json_eval, 5, tiempo_step_inicio, fecha_inicio) return json_eval
def cargar_archivo_dropbox(self, 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() if not UtilsEvaluaciones.se_ingreso_correctamente_a_la_sesion( json_eval): json_eval = UtilsEvaluaciones.generar_json_inicio_de_sesion_incorrecta( json_eval, tiempo_step_inicio, fecha_inicio, 2, constantes_evaluaciones_claro_drive. MSG_CARGA_ARCHIVO_FALLIDA_POR_INICIO_DE_SESION) return json_eval try: ValidacionesHtml.verificar_remover_ventana_configuracion( webdriver_test_ux) ValidacionesHtml.verificar_archivo_ya_existente_en_portal( webdriver_test_ux, nombre_archivo_sin_ext) # seingresa a la pagina principal del portal webdriver_test_ux.get('https://www.dropbox.com/h?role=personal') # se obtienen los input de tipo file para la carga del archivo, si sobrepasa mas de 20 segundos, # se sigue el flujo del script while True: segundos = 0 lista_inputs_type_file = webdriver_test_ux.find_elements_by_xpath( '//input[@type="file"]') if len(lista_inputs_type_file) > 0: break elif segundos > 20: break else: segundos += 1 time.sleep(1) # se intentara realizar la carga de archivo en un lapso de 10 seg, si sobrepasa el tiempo sin exito, # se continua el flujo del script while True: segundos = 0 if len(lista_inputs_type_file) > 0: HtmlActions.enviar_data_keys( lista_inputs_type_file[0], json_args['pathImage'], xpath='//input[@type="file"][0]') # for input_file in lista_inputs_type_file: # HtmlActions.enviar_data_keys( # input_file, json_args['pathImage'], xpath='//input[@type="file"][0]') if ValidacionesHtml.verificar_elemento_html_por_class_name( 'dig-Modal-footer', webdriver_test_ux): break time.sleep(1) segundos += 1 if segundos > 10: break footer = HtmlActions.webdriver_wait_presence_of_element_located( webdriver_test_ux, 5, class_name='dig-Modal-footer') btn_carga = HtmlActions.webdriver_wait_element_to_be_clickable( footer, 5, class_name='dig-Button--primary') HtmlActions.click_html_element(btn_carga, class_name='dig-Button--primary') HtmlActions.webdriver_wait_presence_of_element_located( webdriver_test_ux, 720, xpath= '//span[@class="dig-Snackbar-message "][text()="Se carg\u00F3 {}."]' .format(nombre_archivo_con_ext)) btn_cerrar_progreso_carga = HtmlActions.webdriver_wait_presence_of_element_located( webdriver_test_ux, 10, xpath='//span[@class="dig-Button-content"][text()="Cerrar"]') HtmlActions.click_html_element( btn_cerrar_progreso_carga, xpath='//span[@class="dig-Button-content"][text()="Cerrar"]') json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 2, 0, True, constantes_evaluaciones_claro_drive. MSG_OUTPUT_CARGA_ARCHIVO_EXITOSO) except ElementNotInteractableException as e: msg_output = constantes_evaluaciones_claro_drive.MSG_OUTPUT_CARGA_ARCHIVO_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 2, 0, False, msg_output) except NoSuchElementException as e: msg_output = constantes_evaluaciones_claro_drive.MSG_OUTPUT_CARGA_ARCHIVO_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 2, 0, False, msg_output) except TimeoutException as e: msg_output = constantes_evaluaciones_claro_drive.MSG_OUTPUT_CARGA_ARCHIVO_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 2, 0, False, msg_output) except ElementClickInterceptedException as e: msg_output = constantes_evaluaciones_claro_drive.MSG_OUTPUT_CARGA_ARCHIVO_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 2, 0, False, msg_output) json_eval = UtilsEvaluaciones.finalizar_tiempos_en_step( json_eval, 2, tiempo_step_inicio, fecha_inicio) return json_eval
def descargar_archivo_dropbox(self, webdriver_test_ux: WebDriver, json_eval, nombre_archivo_con_ext): extension_del_archivo = path.splitext(nombre_archivo_con_ext)[1] nombre_del_archivo_sin_extension = Path(nombre_archivo_con_ext).stem tiempo_step_inicio = Temporizador.obtener_tiempo_timer() fecha_inicio = Temporizador.obtener_fecha_tiempo_actual() if not UtilsEvaluaciones.se_ingreso_correctamente_a_la_sesion( json_eval): json_eval = UtilsEvaluaciones.generar_json_inicio_de_sesion_incorrecta( json_eval, tiempo_step_inicio, fecha_inicio, 3, constantes_evaluaciones_claro_drive. MSG_DESCARGA_ARCHIVO_FALLIDA_POR_CARGA_ARCHIVO_FALLIDA) return json_eval try: ValidacionesHtml.verificar_remover_ventana_configuracion( webdriver_test_ux) search_bar = HtmlActions.webdriver_wait_element_to_be_clickable( webdriver_test_ux, 20, class_name='search__input') HtmlActions.enviar_data_keys(search_bar, nombre_archivo_con_ext, class_name='search__input') #time.sleep(1) HtmlActions.enviar_data_keys(search_bar, Keys.RETURN, class_name='search__input') archivo_por_descargar = HtmlActions.webdriver_wait_element_to_be_clickable( webdriver_test_ux, 20, xpath='//tr[@data-filename="{}"]'.format( nombre_archivo_con_ext)) checkbox = HtmlActions.webdriver_wait_element_to_be_clickable( archivo_por_descargar, 10, class_name='brws-checkbox-cell') HtmlActions.click_html_element(checkbox, class_name='brws-checkbox-cell') btn_mas_acciones = HtmlActions.webdriver_wait_element_to_be_clickable( archivo_por_descargar, 20, xpath='//button[@data-testid="action-bar-overflow"]') HtmlActions.click_html_element( btn_mas_acciones, xpath='//button[@data-testid="action-bar-overflow"]') btn_descargar = HtmlActions.webdriver_wait_element_to_be_clickable( webdriver_test_ux, 20, xpath='//div[@class="dig-Menu-row-title"][text()="Descargar"]') HtmlActions.click_html_element( btn_descargar, xpath='//div[@class="dig-Menu-row-title"][text()="Descargar"]') UtilsEvaluaciones.verificar_descarga_en_ejecucion( nombre_del_archivo_sin_extension, extension_del_archivo) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 3, 0, True, constantes_evaluaciones_claro_drive. MSG_OUTPUT_DESCARGA_ARCHIVO_EXITOSO) except ElementNotInteractableException as e: msg_output = constantes_evaluaciones_claro_drive.MSG_OUTPUT_DESCARGA_ARCHIVO_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 3, 0, False, msg_output) except NoSuchElementException as e: msg_output = constantes_evaluaciones_claro_drive.MSG_OUTPUT_DESCARGA_ARCHIVO_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 3, 0, False, msg_output) except TimeoutException as e: msg_output = constantes_evaluaciones_claro_drive.MSG_OUTPUT_DESCARGA_ARCHIVO_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 3, 0, False, msg_output) except ElementClickInterceptedException as e: msg_output = constantes_evaluaciones_claro_drive.MSG_OUTPUT_DESCARGA_ARCHIVO_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 3, 0, False, msg_output) except StaleElementReferenceException as e: msg_output = constantes_evaluaciones_claro_drive.MSG_OUTPUT_DESCARGA_ARCHIVO_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 3, 0, False, msg_output) json_eval = UtilsEvaluaciones.finalizar_tiempos_en_step( json_eval, 3, tiempo_step_inicio, fecha_inicio) return json_eval
def cerrar_sesion_claro_drive(webdriver_test_ux: WebDriver, json_eval): tiempo_step_inicio = Temporizador.obtener_tiempo_timer() fecha_inicio = Temporizador.obtener_fecha_tiempo_actual() # verifica que se haya iniciado sesion correctamente if not UtilsEvaluaciones.se_ingreso_correctamente_a_la_sesion( json_eval): json_eval = UtilsEvaluaciones.generar_json_inicio_de_sesion_incorrecta( json_eval, tiempo_step_inicio, fecha_inicio, 5, const_claro_drive. MSG_OUTPUT_CIERRE_SESION_MSG_ERROR_INICIO_SESION) return json_eval try: boton_cerrar_sesion = HtmlActions.webdriver_wait_invisibility_of_element_located( webdriver_test_ux, 20, xpath=const_claro_drive.CERRAR_SESION_XPATH_LI_LOGOUT) link_cierre_de_sesion = boton_cerrar_sesion.get_attribute( const_claro_drive.CERRAR_SESION_ATTR_HREF) webdriver_test_ux.get(link_cierre_de_sesion) tiempo_step_inicio = Temporizador.obtener_tiempo_timer() HtmlActions.webdriver_wait_presence_of_element_located( webdriver_test_ux, 20, id=const_claro_drive.CERRAR_SESION_ID_LOGIN) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 5, 0, True, const_claro_drive.MSG_OUTPUT_CIERRE_SESION_EXITOSO) except NoSuchElementException as e: msg_output = const_claro_drive.MSG_OUTPUT_CIERRE_SESION_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 5, 0, False, msg_output) except ElementClickInterceptedException as e: msg_output = const_claro_drive.MSG_OUTPUT_CIERRE_SESION_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 5, 0, False, msg_output) except TimeoutException as e: msg_output = const_claro_drive.MSG_OUTPUT_CIERRE_SESION_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 5, 0, False, msg_output) except ElementNotInteractableException as e: msg_output = const_claro_drive.MSG_OUTPUT_CIERRE_SESION_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 5, 0, False, msg_output) except StaleElementReferenceException as e: msg_output = const_claro_drive.MSG_OUTPUT_CIERRE_SESION_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 5, 0, False, msg_output) json_eval = UtilsEvaluaciones.finalizar_tiempos_en_step( json_eval, 5, tiempo_step_inicio, fecha_inicio) return json_eval
def borrar_archivo_claro_drive(webdriver_test_ux: WebDriver, json_eval, nombre_archivo_sin_ext: str, ext_archivo: str): nombre_completo_de_la_imagen = '{}{}'.format(nombre_archivo_sin_ext, ext_archivo) tiempo_step_inicio = None fecha_inicio = Temporizador.obtener_fecha_tiempo_actual() # verifica que se haya iniciado sesion correctamente if not UtilsEvaluaciones.se_ingreso_correctamente_a_la_sesion( json_eval): json_eval = UtilsEvaluaciones.generar_json_inicio_de_sesion_incorrecta( json_eval, tiempo_step_inicio, fecha_inicio, 4, const_claro_drive. MSG_OUTPUT_BORRADO_ARCHIVO_MSG_ERROR_INICIO_SESION) return json_eval # verifica que se haya iniciado sesion correctamente if not UtilsEvaluaciones.se_cargo_correctamente_el_fichero(json_eval): json_eval = UtilsEvaluaciones.generar_json_inicio_de_sesion_incorrecta( json_eval, tiempo_step_inicio, fecha_inicio, 4, const_claro_drive. MSG_OUTPUT_BORRADO_ARCHIVO_MSG_ERROR_CARGA_ARCHIVO) return json_eval try: action = ActionChains(webdriver_test_ux) HtmlActions.verificar_display_flex_modal_mensaje_de_exito( webdriver_test_ux) UtilsEvaluaciones.esperar_aparicion_modal_de_exito( webdriver_test_ux) UtilsEvaluaciones.esperar_desaparicion_modal_exito( webdriver_test_ux) archivo_localizado_por_descargar = HtmlActions.webdriver_wait_element_to_be_clickable( webdriver_test_ux, 20, xpath=const_claro_drive. BORRAR_ARCHIVO_XPATH_ARCHIVO_POR_DESCARGAR.format( nombre_archivo_sin_ext)) action.move_to_element(archivo_localizado_por_descargar) action.perform() lista_de_divs_de_archivos = webdriver_test_ux.find_elements_by_class_name( const_claro_drive.BORRAR_ARCHIVO_CLASS_NAME_FILENAME) if len(lista_de_divs_de_archivos) != 0: for div in lista_de_divs_de_archivos: nombre_archivo_sin_extension_obtenido = div.find_element_by_class_name( const_claro_drive. BORRAR_ARCHIVO_CLASS_NAME_NAME_WITHOUT_EXT ).get_attribute( const_claro_drive.BORRAR_ARCHIVO_ATTR_INNER_TEXT) nombre_archivo_sin_extension_obtenido = nombre_archivo_sin_extension_obtenido.strip( ) extension_del_archivo_obtenido = webdriver_test_ux.find_element_by_class_name( const_claro_drive.BORRAR_ARCHIVO_EXT).get_attribute( const_claro_drive.BORRAR_ARCHIVO_ATTR_INNER_TEXT) extension_del_archivo_obtenido = extension_del_archivo_obtenido.strip( ) nombre_archivo_formateado = '{}{}'.format( nombre_archivo_sin_extension_obtenido, extension_del_archivo_obtenido) if nombre_archivo_formateado == nombre_completo_de_la_imagen: lista_botones = div.find_elements_by_class_name( const_claro_drive.BORRAR_ARCHIVO_CLASS_NAME_ACTION) HtmlActions.verificar_display_flex_modal_mensaje_de_exito( webdriver_test_ux) if len(lista_botones) > 0: boton_borrar_archivo = lista_botones[-7] HtmlActions.verificar_display_flex_modal_mensaje_de_exito( webdriver_test_ux) tiempo_step_inicio = Temporizador.obtener_tiempo_timer( ) HtmlActions.click_en_elemento_html_con_intentos( boton_borrar_archivo, 5, class_name=const_claro_drive. BORRAR_ARCHIVO_CLASS_NAME_ACTION) # HtmlActions.click_html_element( # boton_borrar_archivo, class_name=const_claro_drive.BORRAR_ARCHIVO_CLASS_NAME_ACTION) HtmlActions.verificar_display_flex_modal_mensaje_de_exito( webdriver_test_ux) UtilsEvaluaciones.esperar_aparicion_modal_de_exito( webdriver_test_ux) UtilsEvaluaciones.esperar_desaparicion_modal_exito( webdriver_test_ux) break json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 4, 0, True, const_claro_drive.MSG_OUTPUT_BORRADO_ARCHIVO_EXITOSO) except NoSuchElementException as e: msg_output = const_claro_drive.MSG_OUTPUT_BORRADO_ARCHIVO_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 4, 0, False, msg_output) except ElementClickInterceptedException as e: msg_output = const_claro_drive.MSG_OUTPUT_BORRADO_ARCHIVO_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 4, 0, False, msg_output) except TimeoutException as e: msg_output = const_claro_drive.MSG_OUTPUT_BORRADO_ARCHIVO_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 4, 0, False, msg_output) except StaleElementReferenceException as e: msg_output = const_claro_drive.MSG_OUTPUT_BORRADO_ARCHIVO_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 4, 0, False, msg_output) except ElementNotInteractableException as e: msg_output = const_claro_drive.MSG_OUTPUT_BORRADO_ARCHIVO_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 4, 0, False, msg_output) json_eval = UtilsEvaluaciones.finalizar_tiempos_en_step( json_eval, 4, tiempo_step_inicio, fecha_inicio) return json_eval
def carga_archivo_claro_drive(webdriver_test_ux: WebDriver, path_archivo_carga: str, json_eval): tiempo_step_inicio = Temporizador.obtener_tiempo_timer() fecha_inicio = Temporizador.obtener_fecha_tiempo_actual() # verifica que se haya iniciado sesion correctamente if not UtilsEvaluaciones.se_ingreso_correctamente_a_la_sesion( json_eval): json_eval = UtilsEvaluaciones.generar_json_inicio_de_sesion_incorrecta( json_eval, tiempo_step_inicio, fecha_inicio, 2, const_claro_drive. MSG_OUTPUT_CARGA_ARCHIVO_MSG_ERROR_INICIO_SESION) return json_eval try: boton_crear = HtmlActions.webdriver_wait_element_to_be_clickable( webdriver_test_ux, 10, class_name=const_claro_drive. CARGA_ARCHIVO_CLASS_NAME_BTN_CREATE_RESOURCE) HtmlActions.click_html_element( boton_crear, class_name=const_claro_drive. CARGA_ARCHIVO_CLASS_NAME_BTN_CREATE_RESOURCE) HtmlActions.webdriver_wait_presence_of_element_located( webdriver_test_ux, 20, class_name=const_claro_drive. CARGA_ARCHIVO_CLASS_NAME_FILE_NAME_READER) input_file = HtmlActions.webdriver_wait_presence_of_element_located( webdriver_test_ux, 20, id=const_claro_drive.CARGA_ARCHIVO_ID_INPUT_FILE_START) HtmlActions.enviar_data_keys( input_file, path_archivo_carga, id=const_claro_drive.CARGA_ARCHIVO_ID_INPUT_FILE_START) ValidacionesHtml.verificar_ventana_archivo_duplicado( webdriver_test_ux) UtilsEvaluaciones.esperar_carga_total_de_archivo(webdriver_test_ux) HtmlActions.verificar_display_flex_modal_mensaje_de_exito( webdriver_test_ux) btn_cerrar_div_progreso_carga_archivo = HtmlActions.webdriver_wait_element_to_be_clickable( webdriver_test_ux, 6, class_name=const_claro_drive.CARGA_ARCHIVO_CLASS_NAME_UP_CLOSE) HtmlActions.verificar_display_flex_modal_mensaje_de_exito( webdriver_test_ux) HtmlActions.click_html_element( btn_cerrar_div_progreso_carga_archivo, class_name=const_claro_drive.CARGA_ARCHIVO_CLASS_NAME_UP_CLOSE) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 2, 0, True, const_claro_drive.MSG_OUTPUT_CARGA_ARCHIVO_EXITOSO) except NoSuchElementException as e: msg_output = const_claro_drive.MSG_OUTPUT_CARGA_ARCHIVO_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 2, 0, False, msg_output) except ElementClickInterceptedException as e: msg_output = const_claro_drive.MSG_OUTPUT_CARGA_ARCHIVO_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 2, 0, False, msg_output) except TimeoutException as e: msg_output = const_claro_drive.MSG_OUTPUT_CARGA_ARCHIVO_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 2, 0, False, msg_output) except StaleElementReferenceException as e: msg_output = const_claro_drive.MSG_OUTPUT_CARGA_ARCHIVO_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 2, 0, False, msg_output) json_eval = UtilsEvaluaciones.finalizar_tiempos_en_step( json_eval, 2, tiempo_step_inicio, fecha_inicio) return json_eval
def borrar_archivo_claro_drive(webdriver_test_ux: WebDriver, json_eval, nombre_archivo_sin_ext: str, ext_archivo: str): nombre_completo_de_la_imagen = '{}{}'.format(nombre_archivo_sin_ext, ext_archivo) tiempo_step_inicio = None fecha_inicio = Temporizador.obtener_fecha_tiempo_actual() # verifica que se haya iniciado sesion correctamente if not UtilsEvaluaciones.se_ingreso_correctamente_a_la_sesion( json_eval): json_eval = UtilsEvaluaciones.generar_json_inicio_de_sesion_incorrecta( json_eval, tiempo_step_inicio, fecha_inicio, 4, const_claro_drive. MSG_OUTPUT_BORRADO_ARCHIVO_MSG_ERROR_INICIO_SESION) return json_eval # verifica que se haya iniciado sesion correctamente if not UtilsEvaluaciones.se_cargo_correctamente_el_fichero(json_eval): json_eval = UtilsEvaluaciones.generar_json_inicio_de_sesion_incorrecta( json_eval, tiempo_step_inicio, fecha_inicio, 4, const_claro_drive. MSG_OUTPUT_BORRADO_ARCHIVO_MSG_ERROR_CARGA_ARCHIVO) return json_eval try: HtmlActions.verificar_display_flex_modal_mensaje_de_exito( webdriver_test_ux) # localiza el archivo a eliminar en el portal archivo_localizado_por_descargar = HtmlActions.webdriver_wait_presence_of_element_located( webdriver_test_ux, 20, class_name='filename') # verifica que ya no se presente una modal de exito, para no interrumpir los clics en el portal HtmlActions.verificar_display_flex_modal_mensaje_de_exito( webdriver_test_ux) # se localiza el boton de sub menu del archivo a borrar boton_sub_menu_actions = HtmlActions.webdriver_wait_presence_of_element_located( archivo_localizado_por_descargar, 20, class_name='open-menu') # se realiza un clic en el boton del submenu (en caso de fallar, se hacen dos intentos mas) HtmlActions.click_en_elemento_html_con_intentos( boton_sub_menu_actions, numero_de_intentos=3, class_name='open-menu') #HtmlActions.click_html_element(boton_sub_menu_actions, class_name='open-menu') # se busca el boton de eliminar, el cual contiene el submenu boton_eliminar = HtmlActions.webdriver_wait_presence_of_element_located( boton_sub_menu_actions, 20, xpath='//li[@class="delete action"]') # se verifica que no este presente la modal de algun mensaje, para que no # intervenga en el clic al boton de eliminar HtmlActions.verificar_display_flex_modal_mensaje_de_exito( webdriver_test_ux) # se realiza un clic al boton de eliminar HtmlActions.click_html_element( boton_eliminar, xpath='//li[@class="delete action"]') # se empieza a tomar el tiempo de duracion de la eliminacion del archivo tiempo_step_inicio = Temporizador.obtener_tiempo_timer() UtilsEvaluaciones.esperar_aparicion_modal_de_exito( webdriver_test_ux) # se establecen los resultados exitosos en el json json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 4, 0, True, const_claro_drive.MSG_OUTPUT_BORRADO_ARCHIVO_EXITOSO) except NoSuchElementException as e: msg_output = const_claro_drive.MSG_OUTPUT_BORRADO_ARCHIVO_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 4, 0, False, msg_output) except ElementClickInterceptedException as e: msg_output = const_claro_drive.MSG_OUTPUT_BORRADO_ARCHIVO_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 4, 0, False, msg_output) except TimeoutException as e: msg_output = const_claro_drive.MSG_OUTPUT_BORRADO_ARCHIVO_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 4, 0, False, msg_output) except StaleElementReferenceException as e: msg_output = const_claro_drive.MSG_OUTPUT_BORRADO_ARCHIVO_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 4, 0, False, msg_output) except ElementNotInteractableException as e: msg_output = const_claro_drive.MSG_OUTPUT_BORRADO_ARCHIVO_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 4, 0, False, msg_output) json_eval = UtilsEvaluaciones.finalizar_tiempos_en_step( json_eval, 4, tiempo_step_inicio, fecha_inicio) return json_eval
def descarga_archivo_claro_drive(webdriver_test_ux: WebDriver, nombre_archivo_sin_ext: str, json_eval, ext_archivo: str): nombre_completo_de_la_imagen = '{}{}'.format(nombre_archivo_sin_ext, ext_archivo) tiempo_step_inicio = None fecha_inicio = Temporizador.obtener_fecha_tiempo_actual() # verifica que se haya iniciado sesion correctamente if not UtilsEvaluaciones.se_ingreso_correctamente_a_la_sesion( json_eval): json_eval = UtilsEvaluaciones.generar_json_inicio_de_sesion_incorrecta( json_eval, tiempo_step_inicio, fecha_inicio, 3, const_claro_drive. MSG_OUTPUT_DESCARGA_ARCHIVO_MSG_ERROR_INICIO_SESION) return json_eval # verifica que se haya iniciado sesion correctamente if not UtilsEvaluaciones.se_cargo_correctamente_el_fichero(json_eval): json_eval = UtilsEvaluaciones.generar_json_inicio_de_sesion_incorrecta( json_eval, tiempo_step_inicio, fecha_inicio, 3, const_claro_drive. MSG_OUTPUT_DESCARGA_ARCHIVO_MSG_ERROR_CARGA_ARCHIVO) return json_eval try: # verifica que ya no se presente una modal de exito, para no interrumpir los clics en el portal HtmlActions.verificar_display_flex_modal_mensaje_de_exito( webdriver_test_ux) # busqueda del input o barra de busqueda input_busqueda = HtmlActions.webdriver_wait_element_to_be_clickable( webdriver_test_ux, 20, id=const_claro_drive.DESCARGA_ARCHIVO_ID_SEARCH_BOX) # se ingresa cada caracter a la barra de busqueda con un lapso de tiempo for character in nombre_completo_de_la_imagen: HtmlActions.enviar_data_keys( input_busqueda, character, id=const_claro_drive.DESCARGA_ARCHIVO_ID_SEARCH_BOX) time.sleep(.25) # se envia una tecla Enter, para que realice la busqueda del archivo HtmlActions.enviar_data_keys( input_busqueda, Keys.RETURN, id=const_claro_drive.DESCARGA_ARCHIVO_ID_SEARCH_BOX) # se establece un sleep de 5 segundos para que refresque la pantalla y muestre los # archivos localizados time.sleep(5) # localiza el archivo a descargar en el portal archivo_localizado_por_descargar = HtmlActions.webdriver_wait_presence_of_element_located( webdriver_test_ux, 20, class_name='filename') # verifica que ya no se presente una modal de exito, para no interrumpir los clics en el portal HtmlActions.verificar_display_flex_modal_mensaje_de_exito( webdriver_test_ux) boton_sub_menu_actions = HtmlActions.webdriver_wait_presence_of_element_located( archivo_localizado_por_descargar, 20, class_name='open-menu') HtmlActions.click_html_element(boton_sub_menu_actions, class_name='open-menu') boton_descargar = HtmlActions.webdriver_wait_presence_of_element_located( boton_sub_menu_actions, 20, xpath='//li[@class="download action"]') HtmlActions.click_html_element( boton_descargar, xpath='//li[@class="download action"]') HtmlActions.verificar_display_flex_modal_mensaje_de_exito( webdriver_test_ux) tiempo_step_inicio = Temporizador.obtener_tiempo_timer() UtilsEvaluaciones.verificar_descarga_en_ejecucion( nombre_archivo_sin_ext, ext_archivo) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 3, 0, True, const_claro_drive.MSG_OUTPUT_DESCARGA_ARCHIVO_EXITOSO) except NoSuchElementException as e: msg_output = const_claro_drive.MSG_OUTPUT_DESCARGA_ARCHIVO_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 3, 0, False, msg_output) except ElementClickInterceptedException as e: msg_output = const_claro_drive.MSG_OUTPUT_DESCARGA_ARCHIVO_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 3, 0, False, msg_output) except TimeoutException as e: msg_output = const_claro_drive.MSG_OUTPUT_DESCARGA_ARCHIVO_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 3, 0, False, msg_output) except StaleElementReferenceException as e: msg_output = const_claro_drive.MSG_OUTPUT_DESCARGA_ARCHIVO_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 3, 0, False, msg_output) except ElementNotInteractableException as e: msg_output = const_claro_drive.MSG_OUTPUT_DESCARGA_ARCHIVO_SIN_EXITO.format( e.msg) json_eval = UtilsEvaluaciones.establecer_output_status_step( json_eval, 3, 0, False, msg_output) json_eval = UtilsEvaluaciones.finalizar_tiempos_en_step( json_eval, 3, tiempo_step_inicio, fecha_inicio) return json_eval