Solía hacerlo en Firefox usando un comando de Python, pero recientemente algo cambió y ya no puedo obtener la URL.
Lo que solía funcionar con Firefox:
#!/bin/bash current_tab_num () { python2 <<< $'import json\nf = open("/home/username/.mozilla/firefox/xxxxx.default/sessionstore.js", "r")\njdata = json.loads(f.read())\nf.close()\nprint str(jdata["windows"][0]["selected"])' } current_tab_url () { sed -n "$(current_tab_num)p" <(python2 <<< $'import json\nf = open("/home/username/.mozilla/firefox/xxxxx.default/sessionstore.js", "r")\njdata = json.loads(f.read())\nf.close()\nfor win in jdata.get("windows"):\n\tfor tab in win.get("tabs"):\n\t\ti = tab.get("index") - 1\n\t\tprint tab.get("entries")[i].get("url")') } current_tab_url
¿Alguien puede decirme cómo hacer esto en Firefox y / o Chrome?
NOTA : No entiendo python, ¡acabo de encontrar esos comandos en alguna parte y los usé en bash!
Respuestas:
Tuve el mismo problema y lo resolví mientras intentaba resolverlo, así que publicaré mi solución (que es bastante mala) aquí.
Yo uso wmctrl (podría usar xprop en su lugar) y xdotool para hacer esto. Anteriormente, utilizaba una extensión para hacer visible la URL en la barra de título (luego puede acceder a la URL a través de xprop o wmctrl). Ambos métodos funcionan bastante bien, aunque en realidad no es "limpio".
Ahora tiene la URL en su portapapeles. Luego uso xclip para trabajar con la URL.
Me encantaría ver una solución real para esto si alguien encuentra una.
fuente
¿Podría decir el error que obtiene después de la ejecución, porque el script funciona para mí? Aquí hay la misma pregunta, respondida usando
php
yperl
:URL de salida de pestañas abiertas de Firefox en la terminal
Como la parte principal de Python, aquí hay un script puramente de Python, para hacer lo mismo, pruébalo también:
Reemplacé el
/home/username/.mozilla/firefox/xxxxx.default/sessionstore.js
archivo conrecovery.js
. En mi caso (Mozilla Firefox 44.0, openSUSE 13.1) el archivo es~/.mozilla/firefox/*.default/sessionstore-backups/recovery.js
. Y por último, pero no menos importante, el script no funciona si tiene dos instancias deFirefox
ejecución.fuente