url'yi google-chrome'daki mevcut sekmeden almanın bir yolu var mı?


13

Firefox'ta bunu bir python komutu kullanarak yapardım, ancak son zamanlarda bir şeyler değişti ve artık URL'yi alamıyorum!

  • Firefox ile ne kullanılır?

    #!/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 ve / veya chrome'da bunun nasıl yapılacağını kimse söyleyebilir mi?

NOT : Python'u anlamıyorum, bu komutları bir yerlerde buldum ve bash'da kullandım!


Selenyum gibi bir şey bunun için daha uygun olacak
cristi

Yanıtlar:


6

Aynı sorunu yaşadım ve çözmeye çalışırken oradan geçtim, bu yüzden çözümümü burada göndereceğim (ki oldukça kötü).

Bunu yapmak için wmctrl (bunun yerine xprop kullanabilirsiniz) ve xdotool kullanıyorum. Daha önce, URL'yi başlık çubuğunda görünür hale getirmek için bir uzantı kullandım (daha sonra URL'ye xprop veya wmctrl aracılığıyla erişebilirsiniz). Her iki yöntem de gerçekten "temiz" olmasa da oldukça iyi çalışır.

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"

Artık panonuzda URL var. Sonra URL ile çalışmak için xclip kullanın.

Eğer birisi bulursa, bunun için gerçek bir çözüm görmek isterim.


3

Senaryo benim için çalışıyor çünkü hata, yürütme sonra almak söyleyebilir misiniz. Burada aynı soru var phpve şunu kullanarak yanıtladı perl:

Terminaldeki açık firefox sekmelerinin çıkış URL'si

Python'un ana kısmı olduğundan, burada aynı şeyi yapmak için tamamen python betiği var:

    #!/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.jsDosya ile değiştirdim recovery.js. Benim durumumda (Mozilla Firefox 44.0, openSUSE 13.1) dosya ~/.mozilla/firefox/*.default/sessionstore-backups/recovery.js. Ve son olarak, en az değil, Firefoxçalışan iki örneğiniz varsa komut dosyası çalışmaz .


Chrome için eşdeğer dosya nedir?
gaurav parashar
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.