xdotool
CSVから一部のデータを読み取り、他のソフトウェアのフォームに入力する簡単なBASHスクリプトがあります。
#!/bin/bash
sleep 5
while read -r line
do
a="$(echo $line | awk '{ print $1 }')"
xdotool type $a
xdotool key "$Tab"
done < ./data.csv
aplay Beep.wav
スクリプトは期待どおりに機能しますが、ビープ音の後に画面がロックされます。
- マウスは移動しますが、ウィンドウには表示されず(たとえば、ツールヒントは表示されません)、何もクリックできず、現在のウィンドウもクリックできません。
- キーボードワード(ただし、現在のウィンドウ内でのみ可能)
- このように窓が5分ほどロックされているが、突然もうロックされていませんでした。
CTRL + ALT + F1を使用するとコンソールを変更できますが、コンソールがロックされるのを防ぎませんでしたkillall -9 xfce4-terminal
。killall -9 xdotool
xdotool
スクリプトで現在のウィンドウが実行された後にロックされるのを防ぐ方法は?
答え1
対話したいウィンドウをクリックするのを待っているので、ビープ音が鳴ります。カーソルが「+」記号に変わることに気づいていませんか?
マンページをもう一度読んでください。ウィンドウID(--window)を指定する必要があります。ID)
答え2
同様の問題があったので、答えを探しているやや古い質問を直接見つけました。私はxdotoolを使ってウェブサイト(Firefox)に自動的にログイン情報を入力します。
xbindkeys を使用してキーの組み合わせをスクリプトにバインドします。スクリプトはウィンドウ名(xdotoolも使用)を認識し、暗号化されたファイル内の関連項目を見つけて、適切なログイン情報をロードして入力します。
私のスクリプトの複雑さ、ユーザーのやり取り、入力フィールドに情報を入力する方法については説明しません。しかし、問題を解決しました。実際の入力をする前に短い睡眠を追加してください。
sleep 0.4
xdotool type ...
私はこれがハッキーな解決策であることを認めていますが、うまくいくようです。この解決策がこの非常に残念なエラー(?)を克服したい場合、または他の人に良い答えを書くように促すすべての人に役立つことを願っています。