2011-07-13 63 views
0

我無法獲取rb-appscript來激活特定的Safari窗口。它始終激活最近激活的窗口。如何使用rb-appscript激活特定的Safari窗口?

(IRB中,假設RB-appscript已經安裝)

require 'appscript' 
include Appscript 

safari = app 'Safari' 
safari.open_location "http://www.google.com" 
safari.open_location "http://www.apple.com" 
safari.open_location "http://www.bing.com" 
safari.documents.URL.get 
=> ["http://www.bing.com/", "http://www.apple.com/", "http://www.google.com.ph/", "http://www.apple.com/startpage/"] 
safari.documents[1].URL.get 
=> "http://www.bing.com/" 
safari.documents[3].URL.get 
=> "http://www.google.com.ph/" 

現在,這裏是毛茸部分。激活文件[3]應該激活谷歌窗口,但這不是發生的事情。

safari.documents[3].activate 
=> nil (activates the bing window instead of the google window) 
safari.windows[3].activate 
=> nil (activates the bing window instead of the google window) 
+0

你有直的AppleScript試過這個,看看它是否起作用? –

+0

我需要在Ruby中執行此操作 – Radamanthus

+1

正確,但是rb-appscript本質上是您的代碼與Applescript和OSA之間的一個層。並不是所有的東西都會被rb-appscript傳遞給Ruby,所以可能會出現一個錯誤,那就是rb-aapscript沒有傳遞給你。也就是說,我在Applescript中嘗試過這種方法,而且@Lri的回答並不奏效。 –

回答

3

不能activate窗口:

app("Safari").windows[its.name.eq("Google")].index.set(1) 

 

tell application "Safari" to set index of (windows where name is "Google") to 1 
+0

這對我有效。謝謝! – Radamanthus