Charles 和 AppleScript(Accessibility Inspector 中的缺失值)

Posted

技术标签:

【中文标题】Charles 和 AppleScript(Accessibility Inspector 中的缺失值)【英文标题】:Charles and AppleScript (missing values in Accessibility Inspector) 【发布时间】:2013-06-03 21:36:00 【问题描述】:

编辑:我正在尝试使用 AppleScript 从 Web 代理调试应用程序 Charles (http://www.charlesproxy.com/) 保存会话文件。基本上,我选择“导出”,输入一个临时名称,然后保存。但是,在我单击组合框 2 后,即“格式”区域,然后尝试单击弹出按钮“XML 会话文件 (.xml)”后,Applescript 编辑器会抛出一个错误,说它找不到它.

目前我用下面的代码破解了它,但由于某种原因,它只适用于 Applescript 编辑器,有时也适用于终端/我的代码,尤其是当我同时执行其他操作时。

tell application "Charles"
    activate
end tell

tell application "System Events"
    tell process "Charles"
        tell menu bar 1
            click menu bar item "File"
            tell menu "File"
                click menu item "Export..."
            end tell
        end tell
        tell window "Save"
            keystroke "tempCharles"
            delay 0.5
            click combo box 2
            delay 0.5
            key code 125 -- down arrow
            delay 0.2
            key code 125
            delay 0.2
            key code 125
            delay 0.2
            key code 125
            delay 0.2
            keystroke return
            delay 0.4
            keystroke return
            delay 0.4
            keystroke return
        end tell
    end tell
end tell

我希望我的代码看起来像这样

    tell window "Save"
        keystroke "tempCharles.xml"
        delay 3
        click combo box 2
        tell combo box 2
            click pop up button "XML Session File (.xml)"
        end tell
        click button "Save"
    end tell

任何 hack 也可以。在发布之前,尝试在终端上运行“osascript”以检查它是否无法通过 AppleScript 编辑器运行。

【问题讨论】:

【参考方案1】:

set value of text field 1 of window 1 似乎也不起作用,但您可以尝试使用keystroke

delay 0.5 -- time to release modifier keys if the script is run with a shortcut like cmd-R
tell application "System Events" to tell process "Charles"
    set frontmost to true
    click menu item "Save..." of menu 1 of menu bar item "File" of menu bar 1
    keystroke "templog" & return
end tell

【讨论】:

【参考方案2】:

是的,有效!我刚刚加了

-- Got rid of the "set text" line
keystroke return
delay 1
click button "Save"

这是非常微妙的,我以前见过,但现在我更好地意识到它是什么。非常感谢!

【讨论】:

以上是关于Charles 和 AppleScript(Accessibility Inspector 中的缺失值)的主要内容,如果未能解决你的问题,请参考以下文章

AppleScript脚本学习记录《二》

在后台显示和更新 applescript 输出

AppleScript

使用 AppleScript 制作用户名和密码输入框

使用AppleScript构建和运行XCode

确定应用程序响应的 AppleScript 命令