чи є спосіб отримати URL з поточної вкладки в google-chrome?


13

Раніше я робив це на 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 та / або хромі?

ПРИМІТКА . Я не розумію python, я просто знайшов ці команди десь і використав їх у bash!


Щось подібне до селену буде більш придатним для цього
Крісті

Відповіді:


6

У мене була така ж проблема, і я потрапив туди, намагаючись вирішити її, тому я опублікую тут своє рішення (що досить погано).

Я використовую wmctrl (ви можете використовувати xprop замість цього) і xdotool для цього. Раніше я використовував розширення, щоб зробити URL-адресою видимою в рядку заголовка (потім ви можете отримати доступ до URL через xprop або wmctrl). Обидва методи працюють досить добре, хоча це не дуже "чисто".

id=$(wmctrl -l | grep -oP "(?<=)(0x\w+)(?=.*Chromium)") //Put here the regex for the browser you use
xdotool key --window $id "ctrl+l"
xdotool key --window $id "ctrl+c"

Тепер у вашому буфері обміну є URL-адреса. Потім я використовую xclip для роботи з URL-адресою.

Я хотів би побачити реальне рішення цього питання, якщо хтось знайде його.


3

Чи можете ви сказати про помилку, яку ви отримаєте після виконання, тому що сценарій працює для мене. Існує те ж питання тут, відповіли використання phpі perl:

Вихідна URL-адреса відкритих вкладок Firefox у терміналі

Оскільки головна частина python, ось чисто сценарій python, щоб зробити те саме, спробуйте також:

    #!/usr/bin/python
    import json
    f = open("recovery.js","r")
    jdata = json.loads(f.read())
    f.close()

    number_of_selected_tab = jdata["windows"][0]["selected"]

    tab_number = 1
    for win in jdata.get("windows"):
        for tab in win.get("tabs"):
            if number_of_selected_tab == tab_number :
                tab_index = tab.get("index") - 1
                print tab.get("entries")[tab_index].get("url")
            tab_number = tab_number + 1

Я замінив /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запуску.


Що таке еквівалентний файл для Chrome?
gaurav parashar
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.