Раньше я делал это на firefox с помощью команды python, но недавно что-то изменилось, и я больше не могу получить URL!
Что раньше работало с 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
Может кто-нибудь сказать мне, как это сделать в Firefox и / или Chrome?
ПРИМЕЧАНИЕ : я не понимаю python, я просто где-то нашел эти команды и использовал их в bash!
Ответы:
У меня была такая же проблема, и я пытался ее решить, поэтому я опубликую свое решение (что довольно плохо) здесь.
Я использую wmctrl (вместо этого вы можете использовать xprop) и xdotool. Ранее я использовал расширение, чтобы сделать URL видимым в строке заголовка (затем вы можете получить доступ к URL через xprop или wmctrl). Оба метода работают довольно хорошо, хотя это не совсем "чисто".
Теперь у вас есть URL в вашем буфере обмена. Затем я использую xclip для работы с URL.
Я хотел бы увидеть реальное решение этого, если кто-нибудь найдет его.
источник
Не могли бы вы сообщить об ошибке, которую вы получите после выполнения, потому что скрипт работает на меня. Здесь тот же вопрос, ответ с использованием
php
иperl
:Выходной URL открытых вкладок Firefox в терминале
Поскольку основная часть в python, это чисто python-скрипт, для того же, попробуйте тоже:
Я заменил
/home/username/.mozilla/firefox/xxxxx.default/sessionstore.js
файл наrecovery.js
. В моем случае (Mozilla Firefox 44.0, openSUSE 13.1) файл является~/.mozilla/firefox/*.default/sessionstore-backups/recovery.js
. И последнее, но не менее важное: скрипт не работает, если у вас есть два экземпляраFirefox
запуска.источник