检测窗口总行数

时间:2018-07-31 20:39:58

标签: applescript

我是applescript的新手,我想确定遍历窗口中行的最佳实践。但是我不知道一旦比较所有行就如何引发错误。
目前,我将“硬值”设置为3(因为我只有2行要检查),但是我可能有3行以上,并且一旦它检查了窗口中的所有行,我希望它失败。 我该如何替换下面的代码行“如果TheRow等于3”以检测到它已遍历所有行?

  set ReadDBPluginName to value of (text field 1 of row TheRow of table 1 of scroll area 1 of tab group 1 of window "Plugins Manager" of process "OSX")
        if ReadDBPluginName is not equal NewDBPluginName then
        set TheRow to TheRow + 1
        if TheRow is equal to 3
            error "Plugin Name " & NewDBPluginName & " does not exist"
        end if

1 个答案:

答案 0 :(得分:0)

尽管我在评论中针对您的问题写了什么(这对以后的帖子仍然是很好的建议,可以帮助您获得最好的帮助),但我可能会为您提供解决方案,请记住,它直接从我的头顶上冒出来,并且没有经过任何测试。

您似乎正在遍历一系列UI elements对象,这些对象分为row个对象,每个对象都包含一个text field,您希望检索其中的value个对象,并将其与某个预先存在的字符串(NewDBPluginName)进行比较。

以此为前提,您可以消除已经使用的任何repeat循环,并立即读取每个text field 1中每个row的值。然后,只需检查一下此值列表是否包含NewDBPluginName

    tell application "System Events" to ¬
        set ReadDBPluginNames to the value of ¬
            text field 1 of ¬
            rows of ¬
            table 1 of ¬
            scroll area 1 of ¬
            tab group 1 of ¬
            window "Plugins Manager" of process "OSX"

    if NewDBPluginName is not in ReadDBPluginNames then ¬
        error "Plugin Name " & NewDBPluginName & " does not exist"