No tengo experiencia con Selenium , pero me pregunto si podría usar un AppleScript (que Alfred puede usar) para obtener la ventana id de cada ventana de Firefox . Los id de la ventana normalmente se asignan de forma incremental, por lo que una ventana reciente tendrá un id de mayor valor numérico que los que venían antes.
tell application "Firefox" to get every window
debería devolver una lista de todas las ventanas referenciadas por sus números de identificación, por ejemplo
{window id 59 of application "Firefox", window id 2408 of application "Firefox", window id 61 of application "Firefox", window id 60 of application "Firefox"}
Por supuesto, me pregunto cómo afectará esto al ejecutar múltiples instancias separadas de Firefox , ya que no puedo predecir si AppleScript enviará el comando get windows
a todos Firefox instancias o solo una (y, si es así, ¿cuál?).
Si esa línea funciona como quiero, entonces puedes seleccionar la que tenga la identificación más pequeña y cerrar las demás. Aquí hay una forma de hacerlo:
tell application "Firefox" to get the id of every window
set W to result
set AppleScript's text item delimiters to space
do shell script ({"echo", W, "| tr ' ' '\n'", "| sort -n"} as string)
--> Outputs lines sorted from smallest to greatest value
set W to first paragraph of result
tell application "Firefox" to close (windows whose id > W)