单击未知的UI元素

时间:2012-09-19 04:13:01

标签: applescript

我找到了一个实际上是按钮的UI元素,但显示为AXUnknown。

该窗口显示在以下链接中: http://s8.postimage.org/p7123rw85/screen.png

使用命令单击不起作用,所以我想我会尝试不同的东西。

我尝试了什么:

通过这个元素,我可以通过执行:get value of attribute "AXPosition"

来获取元素的位置

然后我可以使用我从中获得的坐标来使用click at命令单击未知的UI元素。

更新

我现在也尝试使用perform action "AXPress" of命令。

tell application "System Events"

    tell process "SomeProcess"

        if (exists window "SomeWindow") then

            perform action "AXPress" of UI element 3 of UI element 6 of window "SomeWindow"

        end if
    end tell
end tell

这没什么用,我的想法已经不多了。有没有人对这个问题有任何经验,或者知道这是不可能完成的?

1 个答案:

答案 0 :(得分:1)

如果普通的gui脚本技术不起作用,那么作为最后的手段,您可以尝试击键。首先,您需要设置系统首选项以启用此技术。检查窗口底部的“所有控件”按钮...系统首选项 - >键盘 - >键盘快捷键标签。启用此功能后,您可以使用选项卡按钮循环浏览窗口的各种ui元素。当您选中按钮后,然后按空格键。因此,要计算按下按钮以获得按钮的数量,然后这样的事情就可以了。

set numberOfTabs to 3
set shortDelay to 0.2

tell application "Whatever" to activate
delay shortDelay
tell application "System Events"
    repeat numberOfTabs times
        keystroke tab
        delay shortDelay
    end repeat
    keystroke space
end tell

请注意,这不是很可靠,因为标签的数量可能并不总是一致的。你必须检查一下。