web-dev-qa-db-ja.com

Googleで現在開いているタブを取得するChromeコマンドラインから

ChromeからすべてのタブをFirefoxに自動的に転送するシェルスクリプトを記述したい(Chromeからタブのリストを取得し、スクリプトを使用してFirefoxでタブを開く)。) Chrome、コマンドラインから開いているタブのリストを取得することはできますか?

21
Anderson Green

この質問には答えられませんでした。上記の解決策はChrome OPがCLIで尋ねた開発ツールのためのものなので、これが私が見つけた解決策です:

strings ~/.config/google-chrome/Default/Current\ Session | grep -E '^https?://'
10

MacOSのみのソリューションの場合、オープンソースユーティリティ chrome-cli を使用することもできます。あなたはHomebrewでインストールできます:

brew install chrome-cli

また、READMEから1つ注意してください。

JavaScriptを実行するには、最初にView > Developer > Allow JavaScript from Apple Eventsで許可する必要があります。

これは次のようになります。

$ chrome-cli list tabs
[1889] Edit - Super User
[1918] prasmussen/chrome-cli: Control Google Chrome from the command line
[1905] Yotto Winter Mix 19 by Yotto
$ chrome-cli list links
[1889] https://superuser.com/posts/1407956/edit
[1918] https://github.com/prasmussen/chrome-cli
[1905] https://soundcloud.com/yotto/yotto-winter-mix-2019
2
Eric Hanko

私はついに重複した質問を見つけました(それを見つけるために多くの検索を行いました): https://stackoverflow.com/questions/4968271/chrome-on-linux-query-the-browser-to- see-what-tabs-are-open

2
Anderson Green

Chrome-cliについて知っていればいいのに...

これもOSXのみのソリューションです。私はapplescriptを使用しています。

function chrome_json_summary() {
local wincount=$(osascript -e 'tell application "Google Chrome" to get number of windows')
[ "$wincount" -eq 0 ] && echo "zero windows!" && return

local json="["
for (( i=1; i<=$wincount; i++)); do
    json="$json""["
    local cmd="osascript -e 'tell application \"Google Chrome\" to get number of tabs in window $i'"
    local tabcount=$(eval $cmd)
    for (( j=1; j<=$tabcount; j++)); do
        local cmd="osascript -e 'tell application \"Google Chrome\" to get URL of tab $j of window $i'"
        local url=$(eval $cmd)
        [ $j -eq $tabcount ] && json="$json\"$url\"" || json="$json\"$url\","
   done
   [ $i -eq $wincount ] && json="$json]" || json="$json],"
done
echo "$json]"
}

このbash関数はapplescriptを使用して、すべてのchromeウィンドウと各ウィンドウの各タブを反復処理し、配列jsonの配列を作成します。

Jsonをローカルファイルに保存します。私はこれを使用してmy chrome状態をバックアップします。jscript生成をすべてapplescriptで実行した場合、このスクリプトはより高速になります。

JsonファイルをChromeにロードする別の関数があります。

chrome-cliに対するこれの利点は、osxのアップグレードでapplescript(および基本的なbashスクリプト)がほとんど壊れないことです。

1
user2103541