2011-03-02 4 views
5

私はいくつかの自動化コード(主にRuby Selenium)を書き込もうとしています。ユーザーがアップロードするファイルを選択できるように、ある時点でSafariでファイルチューザーが開きます。セレンはこれを処理できませんが、私はAppleScriptができるはずだと思います。私はAppleScriptを初めて使用しており、ファイルチューザダイアログを自動化する誰かの定型コードを見つけることができませんでした。私はAppleScriptのドキュメントを読んでいますが、どんなアイデアであれ、最も役に立ちます。AppleScriptを使用してSafariでファイルを選択

+0

ファイルセレクタが開いたら、特定のファイルをアップロードするようにSafariに指示していますか、Safariに最初に選択機能を開くようにしますか? – Asmus

+0

前者。 Seleniumは、Safariファイルの選択を開くリンクをクリックし、AppleScriptにファイルの場所を指定して呼び出すことができます。少なくとも私はそれを試してみようと思っています。 ;) –

答えて

4

いくつかは、より検索し、私はここで素晴らしい答えを見つけました:Applescript file dialog with UI scripting

は、ここに私が使用して終了何:

on run argv 
tell application "Safari" 
    activate 

    -- Usage check 
    set argc to count argv 
    if argc is not greater than 0 then 
     return "Usage: SafariFileChooser file_name [window_name]" 
    end if 

    -- The file we will choose to open 
    set file_name to item 1 of argv 

    -- Flip to the named window, if specified 
    if argc is equal to 2 then 
     set window_name to item 2 of argv 
     set flip_count to index of window window_name 
     repeat (flip_count - 1) times 
      activate 
      tell application "System Events" to keystroke "`" using command down 
     end repeat 
    end if 

    -- Interact with the dialog using System Events (thanks mcgrailm) 
    tell front window 
     activate 
     tell application "System Events" 
      keystroke "g" using {shift down, command down} 
      keystroke file_name 
      delay 1 
      keystroke return 
      delay 1 
      keystroke return 
     end tell 
    end tell 
end tell 
return 0 

エンドラン

0

私はちょうど発見した別のオプションは、ディレクトリを指定することですコマンドラインを使用して:

do shell script "defaults write com.apple.Safari NSNavLastRootDirectory /path/to/directory" 

この方法では、 UIスクリプティングでは少ししか機能しません。ファイル選択を開く前にこのコマンドを実行すると、指定したディレクトリに移動します。このディレクトリに必要なすべてのファイルをインクルードしてください。コマンド+ aを使ってすべてを選択して戻ることができます。

関連する問題