xdotoolを使用して現在のタブをインポートできます。
# set focus to address on browser
xdotool search --onlyvisible --classname Navigator windowactivate --sync key F6
# copy address from browser tab to clipboard
xdotool search --onlyvisible --classname Navigator windowactivate --sync key Ctrl+c
# get off the focus from address from browser tab
xdotool search --onlyvisible --classname Navigator windowactivate --sync key F6
# delivery of clipboard content to variable
clipboard=`xclip -o -selection clipboard`
# clear clipboard
xsel -bc; xsel -c
# echo URL of active tab of active browser
echo $clipboard
xdotoolには時々上記のコードを停止せずにキー押下をトリガーする欠陥があるため、同じことをするにはwmctrlを使用する別の方法が必要です。
これはbashでwmctrlを使って試しました。
id=$(wmctrl -l | grep -oP "(?<=)(0x\w+)(?=.*Firefox)")
# set focus to address on browser
xdotool key --window $id "ctrl+l"
# copy address from browser tab
xdotool key --window $id "ctrl+c"
# delivery of clipboard content to variable
url=`xclip -o -selection clipboard`
# clear clipboard
xsel -bc; xsel -c
# echo URL of active tab of active browser
echo $url
答え1
私はこれにxdotoolを使用しません。それは脆弱でエラーが発生しやすいです。次の適切なブラウザ自動化ツールを使用します。 人形。 maronatte_driver Pythonモジュールをインストールします。
pip3 install --user marionette_driver
--marionette オプションを使用して Firefox の新しいインスタンスを起動します。
firefox --marionette
次のget_url.pyを使用してください。
#!/usr/bin/env python3
import marionette_driver
m = marionette_driver.marionette.Marionette()
m.start_session()
print(m.get_url())
m.delete_session()
例:
$ ./get_url.py
https://unix.stackexchange.com/questions/629440/how-to-get-the-url-from-current-tab-of-firefox-by-help-of-wmctrl
./get_url.py
コマンド置換を使用して出力を変数に保存できます。
$ url="$(./get_url.py )"
$ echo $url
https://unix.stackexchange.com/questions/629440/how-to-get-the-url-from-current-tab-of-firefox-by-help-of-wmctrl/629447?noredirect=1#comment1177925_629447
答え2
これは別の書き込み方法です。
# Search for the visible Firefox window(s) and get its window ID
window_id=$(xdotool search --onlyvisible --class "firefox")
# Send the keyboard shortcut to open the URL bar, copy the URL to clipboard and then close the URL bar by sending the Escape key.
# The command is sent to the Firefox window with the specified ID using the --window option.
xdotool key --window $window_id --delay 20 --clearmodifiers ctrl+l ctrl+c Escape
# delivery of clipboard content to variable
clipboard=`xclip -o -selection clipboard`
# clear clipboard
xsel -bc; xsel -c
# echo URL of active tab of active browser
echo $clipboard
答え3
サンプルコードでxdotool関連の問題を解決できます。 xdotoolエラーを修正するには、次のサンプルコードを参照してください。
#!/bin/bash
while true; do
echo Get current_wid
current_wid=$(xdotool getwindowfocus) # Get wid of current window and save this value for go bac later
echo "$current_wid"
echo
echo
echo F5 senden
xdotool windowactivate --sync "$current_wid" key --clearmodifiers F5
echo
echo
echo Fix von aktivem Fenster
xdotool windowactivate "$current_wid" # Done, now go back to where we were
echo
echo
echo "sleep 1"
sleep 1
done
echo "Zum Beenden Enter drücken oder Ctl + C."; read -r