google-chrome의 현재 탭에서 URL을 얻는 방법이 있습니까?


13

나는 파이어 폭스에서 파이썬 명령을 사용하여 그 일을했지만 최근에는 무언가가 바뀌었고 더 이상 URL을 얻을 수 없습니다!

  • 파이어 폭스와 함께 작동했던 것 :

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

누구나 파이어 폭스 및 / 또는 크롬 에서이 작업을 수행하는 방법을 말해 줄 수 있습니까?

참고 : 파이썬을 이해하지 못합니다. 어딘가에서 해당 명령을 찾아서 bash에서 사용했습니다!


셀레늄과 같은 것이 더 적합 할 것입니다.
Cristi

답변:


6

나는 같은 문제가 있었고 그것을 해결하려고하는 동안 거기를 통과 했으므로 여기에 해결책을 게시 할 것입니다.

wmctrl (대신 xprop을 사용할 수 있음)과 xdotool을 사용 하여이 작업을 수행합니다. 이전에는 확장명을 사용하여 제목 표시 줄에 URL을 표시했습니다 (xprop 또는 wmctrl을 통해 URL에 액세스 할 수 있음). 두 방법 모두 실제로 "깨끗하지"않지만 잘 작동합니다.

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

스크립트가 나를 위해 작동하기 때문에 오류가 발생하면 실행 후 얻을 수 있습니다. 같은 질문을 사용하여 대답 여기에 있습니다 phpperl:

터미널에서 열린 파이어 폭스 탭의 출력 URL

파이썬의 주요 부분이기 때문에 여기에 순수한 파이썬 스크립트가 있습니다. 동일한 작업을 수행하려면 다음을 수행하십시오.

    #!/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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.