使用AppleScript选择组合框项不会触发项操作

时间:2013-02-22 22:14:17

标签: applescript

我正在尝试使用AppleScript点击选择框中的项目。

Screenshot of the window

使用鼠标手动单击“更多...”项目时,会打开一个标准的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

......现在我没有想法。

2 个答案:

答案 0 :(得分:1)

经过多次测试后,结果是文件对话框仅在组合框具有焦点时打开,单击组合框箭头按钮和菜单项实际上不会使其聚焦。

http://lists.apple.com/archives/accessibility-dev/2006/Oct/msg00013.html

在尝试了该线程中的所有方法以给予元素焦点后,即使“click at”也无效。

https://apple.stackexchange.com/questions/40141/when-mousekeys-are-on-how-do-i-click-or-move-the-mouse-using-applescript#answer-40859

该回答建议使用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)

在这里你可以找到有类似问题的人,答案也是陈词滥调

https://discussions.apple.com/message/17662850#17662850