J'ai quelques fonctions qui s'exécutent dans des terminaux Unix. Dans ces fonctions, je veux incorporer cet utilitaire. Je veux faire une capture d'écran de la page web de Firefox en utilisant un script shell. Par exemple, dans cette fonction, un fichier HTML est généré. Je dois ouvrir ce fichier HTML dans Firefox en utilisant l'interpréteur de commandes Cmd, puis je dois le mettre en plein écran et faire une capture d'écran de cette fenêtre Firefox, mais le problème ici est que j'ai plusieurs Windows qui exécutent la même fonction, donc si j'utilise cette fonction dans différents terminaux en même temps, plusieurs Firefox s'ouvriront et il n'y aura pas de capture d'écran correcte. En outre, je tiens à mentionner ici que j'ai essayé xdotool sous Unix, mais j'obtiens parfois les messages d'erreur ci-dessous.
Le script que j'utilise
set window_id [ xdotool search --pid $pid --name "firefox" | tail -1]
xdotool search --onlyvisible --class "firefox" set_window $window_id windowraise
xdotool search --onlyvisible --class "firefox" set_window $window_id key F11
sleep 3
xdotool search --onlyvisible --class "firefox" set_window $window_id windowraise
sleep 2
import -window $window_id ~/image.jpg
xdotool windowactivate --sync $window_id
xdotool search --onlyvisible --class "firefox" set_window $window_id windowraise
xdotool search --onlyvisible --class "firefox" set_window $window_id key ctrl+q
sleep 0.1
pour ouvrir un firefox en utilisant le shell - j'utilise la ligne suivante
/usr/pkgs/firefox/bin/firefox --setDefaultBrowser --new-instance ~/test.html
Je tiens également à mentionner que j'ai essayé xdotool sous UNIX. mais j'obtiens parfois les messages d'erreur ci-dessous -
X Erreur d'échec de la demande : BadWindow (paramètre Window invalide)