AppleScriptを使用して、ウィンドウ内のどこかに表示されるボタンをクリックしたいとします。 click button
は機能しますが、どのボタンを押したいかを正確に知る必要があります。
例:スキャナーが完了するのを常に待ってからImage Capture.appに切り替え、再度スキャン。
だから、私はここでこのボタンをクリックすることを自動化したい…
まあ、それは比較的簡単だと思いましたが、最初はこれは私が得た限りです。
tell application "System Events"
tell process "Image Capture"
click button "Scan" of window "Image Capture"
end tell
end tell
もちろん、ボタンはそれよりも深く埋め込まれています(つまり、一部のスプリットグループにあります)。
Accessibility Inspector を使用すると、それがどこにあるかを確認できますが、ボタンを見つけるためにUI要素ツリーを実際に下る必要がありますか?近道はありますか?そうでない場合、click button "Scan" of window "Image Capture"
に何が欠けていますか?
より一般的:UI要素階層のどこにボタンがありますか?
ボタンが直接利用できない場合は、推測する必要があるかもしれません。
HighSierraで機能するのは次のとおりです。
tell application "System Events"
tell process "Image Capture"
click button "Scan" of group 2 of splitter group 1 of window "Image Capture"
end tell
end tell
古いmacOSリリースでは、group 1
を使用する必要がある場合があります。
別の回避策は、ウィンドウをアクティブにしてスペースバーを押すことです。
tell application "Image Capture"
activate
tell application "System Events" to key code 49
end tell
次のようなコマンドを実行することで、実際に近づけることができます。
UI elements of window 1
UI elements of splitter group 1 of window 1
UI elements of group 1 of splitter group 1 of window 1
または、@ Lriがコメントで言ったように:
properties of UI elements of window 1
properties of UI elements of UI elements of window 1
これにより、含まれている要素のリストが表示され、そこから自分の道を推測できます。
MacOS High Sierra10.13.6およびImageCapture 7.0では、上記の回答はこのわずかな変更で機能しました。
tell application "System Events"
tell process "Image Capture"
click button "Scan" of group 2 of splitter group 1 of window "Image Capture"
end tell
end tell
これは私のために働きました:
entire contents of window 1
これが不足したとき:
UI elements of window 1