est-il possible d'obtenir l'url de l'onglet actuel dans google-chrome?


13

J'avais l'habitude de le faire sur Firefox en utilisant une commande python, mais récemment quelque chose a changé et je ne peux plus obtenir l'URL!

  • Ce qui fonctionnait avec 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

Quelqu'un peut-il me dire comment faire cela dans Firefox et / ou Chrome?

REMARQUE : je ne comprends pas python, je viens de trouver ces commandes quelque part et de les utiliser dans bash!


Quelque chose comme le sélénium conviendra mieux à cela
cristi

Réponses:


6

J'ai eu le même problème et je suis passé par là en essayant de le résoudre, donc je posterai ma solution (ce qui est assez mauvais) ici.

J'utilise wmctrl (vous pouvez utiliser xprop à la place) et xdotool pour ce faire. Auparavant, j'utilisais une extension pour rendre l'URL visible dans la barre de titre (vous pouvez ensuite accéder à l'URL via xprop ou wmctrl). Les deux méthodes fonctionnent plutôt bien mais ce n'est pas vraiment "propre".

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"

Vous avez maintenant l'URL dans votre presse-papiers. J'utilise ensuite xclip pour travailler avec l'URL.

J'aimerais voir une vraie solution à cela si quelqu'un en trouve une.


3

Pourriez-vous dire l'erreur que vous obtenez après l'exécution, car le script fonctionne pour moi. Il y a la même question ici, répondue en utilisant phpet perl:

URL de sortie des onglets Firefox ouverts dans le terminal

Depuis la partie principale de python, voici un script purement python, pour faire la même chose, essayez-le également:

    #!/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

J'ai remplacé le /home/username/.mozilla/firefox/xxxxx.default/sessionstore.jsfichier par recovery.js. Dans mon cas (Mozilla Firefox 44.0, openSUSE 13.1), le fichier est ~/.mozilla/firefox/*.default/sessionstore-backups/recovery.js. Et enfin et surtout, le script ne fonctionne pas si vous avez deux instances en Firefoxcours d' exécution.


Quel est le fichier équivalent pour Chrome?
gaurav parashar
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.