es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Generar dinámicamente objetos de controladores para manipular ventanas utilizando Selenium.

Usando la respuesta superior en esta pregunta para crear nuevos objetos de controlador para cada ventana usando selenium (es decir, crear un nuevo nombre de variable para un nuevo objeto webdriver para cada ventana). ¿Cómo puedo nombrar la nueva variable después de un valor de un diccionario a través de la indexación de un diccionario?

Aquí hay una lista de diccionarios:

individual_window_array = [{"nombre_numérico_ventana/nombre_objeto_driver":f'{nombre_numérico_ventana}'}, {"descripción_ventana":f'{descripcion_ventana_actual}'}
                                       ,{"pestañas_ventana":f'{pestañas_ventana_actual}'}, {"título_personalizado_ventana":f'{título_ventana_actual}'}]

¿Cómo puedo nombrar dinámicamente los nuevos objetos de controlador (correspondientes a cada ventana) después de un valor de un diccionario indexado de esta manera?

nueva_ventana = next(iter(individual_window_array[0].values()))
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para nombrar dinámicamente los nuevos objetos de controlador según un valor de un diccionario indexado de esta manera, puede utilizar el siguiente código:

    driver_dict = {} # crea un diccionario vacío para almacenar los objetos de controlador
    for i, window in enumerate(windows):
        driver_dict[individual_window_array[i]["window_numeric_name/driver_object_name"]] = webdriver.Chrome(executable_path="ruta/al/chromedriver.exe")
    

    En el código anterior, primero creamos un diccionario vacío para almacenar los objetos de controlador. Luego recorremos cada ventana en la lista windows (suponiendo que ya ha obtenido esta lista utilizando la solución proporcionada en la pregunta mencionada en Stack Overflow). Dentro del bucle, utilizamos la función enumerate para obtener el índice i de la ventana actual. Luego usamos este índice para obtener el diccionario correspondiente de individual_window_array, y extraemos el valor deseado utilizando la clave "window_numeric_name/driver_object_name" de la siguiente manera: individual_window_array[i]["window_numeric_name/driver_object_name"].

    Finalmente, utilizamos este valor extraído como clave para driver_dict, creamos un nuevo objeto Chromedriver y lo asignamos a esta clave como valor. De esta manera, cada objeto de controlador se nombrará según el valor correspondiente de la clave "window_numeric_name/driver_object_name" en el diccionario individual_window_array.

Comments are closed.