2013-08-06 61 views
3

具體而言,當我在iOS的調試網絡的東西,我可以通過點擊Safari菜單欄下面的菜單項啓動Safari網絡檢查員:如何遍歷AppleScript中的菜單?

  • 培養─>的iPad Simulator-> Safari->我網頁的標題
  • 培養─> iPad的名稱(我叫夏) - > Safari->我的網頁的標題

我想遍歷Safari瀏覽器的菜單和激活開發菜單的任何項目包含我在我的網頁標題中使用的公共子字符串。

回答

4

下面是一個例子。假設我想單擊Safari中「Develop」菜單下的「Show Web Inspector」菜單項。我將首先在「開發」菜單中獲取所有UIElements,然後遍歷它們以正確的名稱查找UIElement。一旦找到我可以點擊它。

請注意,其中的祕訣是獲取某些UIElement的「全部內容」,在這種情況下是「開發」菜單。這給了我菜單中的每個UIElement的列表,以便我可以迭代它們並找到我想要的任何東西。

另請注意,我有一個圍繞if語句的try塊。這是因爲一些UIElements沒有名稱而且有錯誤,所以這只是忽略了這些錯誤。

tell application "Safari" to activate 

tell application "System Events" 
    tell process "Safari" 
     set developMenu to menu bar item "Develop" of menu bar 1 
     set allUIElements to entire contents of developMenu 
     repeat with anElement in allUIElements 
      try 
       if name of anElement is "Show Web Inspector" then 
        click anElement 
        exit repeat 
       end if 
      end try 
     end repeat 
    end tell 
end tell 
+0

感謝regulus!我只是將「元素名稱」切換爲「元素名稱包含」和「顯示Web檢查器」爲我的網頁標題的常見子字符串,我很高興。 – basicallyrun

+0

很高興幫助。當然,你也想刪除「退出重複」。 – regulus6633

2
tell application "System Events" to tell process "Finder" 
    set frontmost to true 
    tell menu 1 of menu item "Arrange by" of menu 1 of menu bar item "View" of menu bar 1 
     click (menu items where its name contains "a") 
    end tell 
end tell 
tell application "System Events" to tell process "Finder" 
    set frontmost to true 
    repeat with m in (get menu 1 of menu items of menu 1 of menu bar item "View" of menu bar 1) 
     set m to contents of m 
     if m is not missing value then 
      click (menu items of m where name contains "a") 
     end if 
    end repeat 
end tell 
+0

這很好,謝謝勞裏。要使第二個腳本適應Web檢查器場景,「Finder」更改爲「Safari」,並將「查看」更改爲「開發」。 – basicallyrun