我正在尝试使用AppleScript点击选择框中的项目。
使用鼠标手动单击“更多...”项目时,会打开一个标准的OSX文件选择器对话框,但当我尝试使用AppleScript执行此操作时,“更多...”项目显示为所选项目对于选择框,但没有显示对话框。
到目前为止,我已经尝试过......(元素名称来自Automator记录器)
tell application "System Events"
click static text 1 of window 1 of application process "DYMO Word Addin"
-- combo box arrow
click UI Element 1 of combo box 2 of group 1 of window 1 of application process "DYMO Word Addin"
set labelsList to (list 1 of scroll area 1 of combo box 2 of group 1 of window 1 of application process "DYMO Word Addin")
set numLabelsInList to (count text fields of labelsList)
set theTextField to (text field numLabelsInList of labelsList)
if numLabelsInList > 1 then
repeat with z from 1 to (numLabelsInList - 1)
key code 125 -- down arrow
end repeat
end if
-- stuff I've tried
click theTextField
keystroke return
key code 36 -- return
set focused of theTextField to true
set value of attribute "AXFocused" of theTextField to true
perform action "AXConfirm" of theTextField
end tell
......现在我没有想法。
答案 0 :(得分:1)
经过多次测试后,结果是文件对话框仅在组合框具有焦点时打开,单击组合框箭头按钮和菜单项实际上不会使其聚焦。
http://lists.apple.com/archives/accessibility-dev/2006/Oct/msg00013.html
在尝试了该线程中的所有方法以给予元素焦点后,即使“click at”也无效。
该回答建议使用cliclick作为移动的另一种方法,然后单击鼠标,这有效。
所以最后我最终得到了
click static text 1 of window 1 of application process "DYMO Word Addin"
set labelsComboBox to (combo box 2 of group 1 of window 1 of application process "DYMO Word Addin")
tell labelsComboBox
set {xPosition, yPosition} to position of labelsComboBox
set {xSize, ySize} to size
end tell
set {realXPosition, realYPosition} to {(xPosition + (xSize div 2)) as string, (yPosition + (ySize div 2)) as string}
do shell script "/usr/local/bin/cliclick m:" & realXPosition & "," & realYPosition & " dc:" & realXPosition & "," & realYPosition
-- combo box arrow
click UI element 1 of labelsComboBox
...
答案 1 :(得分:0)
在这里你可以找到有类似问题的人,答案也是陈词滥调