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()))
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:
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ónenumerate
para obtener el índicei
de la ventana actual. Luego usamos este índice para obtener el diccionario correspondiente deindividual_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 diccionarioindividual_window_array
.