ONDOWNLOAD

(Copy URL in PhpBB Forum Format - Info)

From iMacros

Jump to: navigation, search

iMacros automatically detects and intercepts downloads. With this command, which has to occur before the download starts, the location and name of the saved file is determined. The general web page timeout also applies to downloads. Make sure that the timeout value is long enough to cover the complete download time.

Normally the download file name is created automatically by the website. You can add parts to the original file name by using the + syntax (see Examples). The built-in variable !NOW is helpful in this context.

iMacros for Firefox can calculate the checksum of a downloaded file and compare it with the value of the CHECKSUM parameter. This is very useful to verify the file downloads are not corrupted, or worse, have been infected by a virus or trojan horse (e. g. via a hacked server). Both the MD5 and the SHA1 checksums are supported. This feature will be available in the iMacros Browser and iMacros for IE soon, too!


Important notes:

  • The maximum allowed download time is set by !TIMEOUT (60s by default). If you need to allow longer file downloads, please increase this value e. g. with SET !TIMEOUT 300. If the download is completed before 5 min (300s) are over, the macro continues. Otherwise you get a timeout error.
  • VERY IMPORTANT: The macro must still be running when the download dialog appears, otherwise iMacros can not catch it. Often websites need a few seconds for the download to start, so make sure the macro is still active then, e. g. by adding a short wait statement at the end. This wait time is not for the download itself, but only for the time the site needs for the download dialog to appear. If the macro continues with other commands, you will not need such a WAIT statement, you need it only when the download is at the end of the macro.

Example:

 ONDOWNLOAD FOLDER=* FILE=* WAIT=YES
 URL GOTO= http://www.opera.com/download/get.pl?id=32799&location=326¬hanks=yes&sub=marine
 'Wait for download to _start_, afterwards iMacros waits for the completion automatically
 WAIT SECONDS=1


Contents

Syntax iMacros Browser IE Plug-in

ONDOWNLOAD FOLDER=folder_name FILE=file_name WAIT=[YES|NO]

Syntax Firefox

ONDOWNLOAD FOLDER=folder_name FILE=file_name WAIT=[YES|NO] CHECKSUM=[MD5|SHA:hexadecimal_string]


Parameters

  • FOLDER
    Specifies the folder in which the file is saved. Use * for the standard download folder specified in the options.
    Note that blank spaces in the path need to be replaced by "<SP>" like in "c:\my<SP>folder" (instead of "c:\my folder")
  • FILE
    Specifies the file name under which the file is saved. If no file extension is given, the default file extension is used. Use * for the original file name. Use +something to add something to the original file name before the file extension.
  • WAIT
    Specifies if iMacros should wait for the download to complete (WAIT=YES) or continue with the macro without waiting (WAIT=NO), Default is NO
  • CHECKSUM
    (Firefox only, IE support available soon) Calculates the checksum of a downloaded file and compares it with the value specified (as a hexadecimal string), using either MD5 or SHA-1 hash functions. Note: CHECKSUM requires WAIT=YES.

Examples

Suppose you download a file originally called setup.exe. The following snippet will save this file under the original file name in the default folder:

ONDOWNLOAD FOLDER=* FILE=* 

This command will save the file in the C:\MyFiles\ folder under the name myDownload.exe:

ONDOWNLOAD FOLDER=C:\MyFiles\ FILE=myDownload.exe 

And finally, this command will save the file in the default directory under the name with an added date stamp (using the !NOW variable), e.g. setup_060525.exe.

ONDOWNLOAD FOLDER=* FILE=+{{!NOW:yymmdd}} 

Note: The "+" symbol is only required if you want to add text to the default file name (as created by the website). In this case, "+" must be the first symbol, directly after FILE=+... . The "+" is not required (and not allowed) if you want to concatenate several variables. To concatenate variables just use them as part of the string. Example: FILE=invoice_no{{number}}_unit{{departement}}.pdf


If you want your users to handle the download dialog manually, set !DIALOGMANAGER to NO before the download command.

SET !DIALOGMANAGER NO 
TAG POS=1 TYPE=A ATTR=TXT:Download 
SET !DIALOGMANAGER YES 


In Firefox, you can ckeck the integrity of the downloaded file using the CHECKSUM parameter. Here the expected checksum was previously calculated as a hexadecimal string using the SHA-1 function.

ONDOWNLOAD FOLDER=* FILE=* WAIT=YES CHECKSUM=SHA1:3FD97C2EC475731997F7F28CB5C07F3D1A1E820A


Example macros: Demo-FileDownload, Demo-ImageDownload


Note

The download dialog needs a short while to appear after it is triggered and iMacros should to be running to catch it. If the macro ends right after the command which triggers the download, iMacros will not be able to catch the dialog. In this case, we advice to add

WAIT SECONDS=2

after the command which triggers the download. This gives iMacros time to wait for the dialog

The parameter WAIT=YES refers to another waiting, namely after the download has started it should wait for the download to complete.



See Also

!DIALOGMANAGER, ONCERTIFICATEDIALOG, ONDIALOG, ONERRORDIALOG, ONLOGIN, ONSECURITYDIALOG, ONWEBPAGEDIALOG, CHECKSUM

Personal tools
Home
Toolbox