Difference between revisions of "Sample Code"

From iMacros
Jump to: navigation, search
(VBS (Visual Basic Scripting): Updated to V7 up to extract-and-fill.vbs)
(Javascript)
 
(36 intermediate revisions by 6 users not shown)
Line 1: Line 1:
 
'''Examples for using iMacros efficiently.'''
 
'''Examples for using iMacros efficiently.'''
  
All macros and scripts listed here are '''included in the default installation of iMacros''' (unless otherwise noted). The example batch files and scripts in iMacros 7 can be found at "C:\Documents and Settings\'''<user name>'''\Documents\iMacros\Examples" if you selected the default installation directory during installation. [[Image:Imacros_example_code.png‎|388px|thumb|right|Location of the iMacros example projects after a default iMacros 6.9 installation. With the new '''iMacros 7''' the samples are installed in the''' user's documents''' directory instead.]]
+
All macros and scripts listed here are '''included in the default installation of iMacros Samples''' (unless otherwise noted).
  
''No vendor specific scripting language.'' iMacros does '''not''' use an awkward, proprietary vendor specific scripting language. The iMacros Browser, Internet Explorer (with iMacros Add-on) and Firefox (with iMacros Add-On) can be controlled with '''any''' Windows programming or scripting language. We have included samples for the most popular languages on this page and in the [http://www.iopus.com/download/imacros iMacros download]. The basic usage is the same in every language.  
+
''No vendor specific scripting language.'' iMacros does '''not''' use an awkward, proprietary vendor specific scripting language. The iMacros Browser, Internet Explorer (with iMacros for IE), Google Chrome (with iMacros Add-on) and Firefox (with iMacros Add-On) can be controlled with '''any''' Windows programming or scripting language. We have included samples for the most popular languages on this page. The basic usage is the same in every language.  
  
 
== Macros ==
 
== Macros ==
Internet Macros are used to describe the page specific interaction. The syntax is based on HTML.
+
iMacros macros are used to describe the page specific interaction.
#[[Demo-AJAX-Drag-Drop]] Automate drag & drop in AJAX. ''No'' fixed coordinates required.
+
<!--#[[Demo-AJAX-Drag-Drop]] Automate drag & drop in AJAX. ''No'' fixed coordinates required.-->
#[[Demo-AJAX-Tree]] Move element of an AJAX tree view by drag & drop
+
#[[Demo-AJAX-Tree]] Move element of an AJAX tree view by drag & drop. ''No'' fixed coordinates required.
 
#[[Demo-ArchivePage]] Save the current page with custom file name
 
#[[Demo-ArchivePage]] Save the current page with custom file name
 
#[[Demo-Datasource]] Enter data from textfile (CSV) into web form
 
#[[Demo-Datasource]] Enter data from textfile (CSV) into web form
 +
#[[Demo-DirectScreen]] Automate Java Calculator Applet
 
#[[Demo-Download]] Automate file downloads  
 
#[[Demo-Download]] Automate file downloads  
 
#[[Demo-Draw]] Record mouse movements for e.g. java applets
 
#[[Demo-Draw]] Record mouse movements for e.g. java applets
Line 17: Line 18:
 
#[[Demo-ExtractRelative]] Use relative positioning for more easy extraction
 
#[[Demo-ExtractRelative]] Use relative positioning for more easy extraction
 
#[[Demo-Extract-Table]] Extract complete table with one command and save data to text file
 
#[[Demo-Extract-Table]] Extract complete table with one command and save data to text file
 +
#[[Demo-Eval]] Test for value and time ranges in your macro and anything else that can be done with Javascript
 
#[[Demo-FillForm]] Fill forms automating input boxes, drop down selections, checkboxes, radiobuttons, etc.
 
#[[Demo-FillForm]] Fill forms automating input boxes, drop down selections, checkboxes, radiobuttons, etc.
#[[Demo-FillVariousWebsites]] Fill in forms on different websites with "typical" data (like your name, an email address, etc.)
+
#[[XPATH|Demo-FillForm_XPath]] Use XPath to navigate through elements and attributes in an XML document
 
#[[Demo-Filter]] Filter pictures for faster page loading
 
#[[Demo-Filter]] Filter pictures for faster page loading
 
#[[Demo-Flash]] Automate flash applets
 
#[[Demo-Flash]] Automate flash applets
 
#[[Demo-Frames]] Automate sites using HTML frames
 
#[[Demo-Frames]] Automate sites using HTML frames
#[[Demo-Googlemaps]] Record interactive website actions
 
 
#[[Demo-ImageDownload]] Download picture to local disc, take screenshots
 
#[[Demo-ImageDownload]] Download picture to local disc, take screenshots
 
#[[Demo-ImageRecognition]] Automate e.g. a flash plugin by its graphical elements  
 
#[[Demo-ImageRecognition]] Automate e.g. a flash plugin by its graphical elements  
 
#[[Demo-JavascriptDialog]] Handle pop-up dialogs
 
#[[Demo-JavascriptDialog]] Handle pop-up dialogs
#[[Demo-JavaScriptMenu]] Navigate through JavaScript menus
+
<!--#[[Demo-JavaScriptMenu]] Navigate through JavaScript menus-->
 +
#[[Demo-Keyword-Assert]]  Asserts that a specific keyword appears on a web page
 
#[[Demo-Loop-Csv-2-Web]] Fill textfile (CSV) data to web form
 
#[[Demo-Loop-Csv-2-Web]] Fill textfile (CSV) data to web form
 
#[[Demo-OfflineDialogs]] Automates pop-up dialogs (macro runs on local HTML code)
 
#[[Demo-OfflineDialogs]] Automates pop-up dialogs (macro runs on local HTML code)
Line 42: Line 44:
 
#[[Demo-WebPageDialog]] iMacros handles web page dialogs
 
#[[Demo-WebPageDialog]] iMacros handles web page dialogs
 
#[[Demo-Web-Test]] Use macro for web testing
 
#[[Demo-Web-Test]] Use macro for web testing
#[[Demo-Winclick]] Automate Java/Flash applets
+
#[[Parse Twitter Tweets]] Extract information from tweets
 +
<!--#[[Demo-Winclick]] Automate Java/Flash applets-->
  
 
== Batch Files ==
 
== Batch Files ==
Line 48: Line 51:
 
#[[Example-Batchfile.bat]]
 
#[[Example-Batchfile.bat]]
 
#[[Example-ErrorLevel]]
 
#[[Example-ErrorLevel]]
#[[Example-Variables.bat]]
 
 
#[[Tray-Example-Batchfile.bat]]
 
#[[Tray-Example-Batchfile.bat]]
  
 
== Task Scheduler ==
 
== Task Scheduler ==
  
To schedule a certain macro to run at a certain hour, please use the [http://www.iopus.com/guides/winscheduler.htm Windows task scheduler] and the iMacros command line interface (same commands as used in [[#Batch Files|Batch Files]].)
+
To schedule a certain macro to run at a certain hour, please use the Windows Task Scheduler and the iMacros [[Command_Reference#Command_Line_Switches|command line interface]] (same commands as used in [[#Batch Files|Batch Files]].)
  
 
You can also [[VBS_Command_Line|call VBS scripts from the command line]].
 
You can also [[VBS_Command_Line|call VBS scripts from the command line]].
Line 63: Line 65:
 
== ASP ==
 
== ASP ==
  
An ASP sample project is included in the [http://www.iopus.com/download/imacros iMacros download]. It uses the [[iimRunner]] feature.
+
An ASP sample project is included in the [https://www.imacros.net/download iMacros download]. It uses the [[iimRunner]] feature.
  
 
== ASP.NET ==
 
== ASP.NET ==
  
An ASP.NET sample project is included in the [http://www.iopus.com/download/imacros iMacros download]. It uses the [[iimRunner]] feature.  
+
An ASP.NET sample project is included in the [https://www.imacros.net/download iMacros download]. It uses the [[iimRunner]] feature.  
  
 
iMacros ships with a 32-bit and 64-bit version of the Scripting Interface. This allows you to run iMacros directly from any 64-application on Windows x64 systems. For example, you can use it with ASP.NET (IIS) in 64-bit mode. The use of the 64-bit version requires no code changes.
 
iMacros ships with a 32-bit and 64-bit version of the Scripting Interface. This allows you to run iMacros directly from any 64-application on Windows x64 systems. For example, you can use it with ASP.NET (IIS) in 64-bit mode. The use of the 64-bit version requires no code changes.
 
Case Study: A well-known site that runs iMacros via ASP.NET is [http://wiki.alertfox.com/Monitoring_Server AlertFox Website Monitoring].
 
  
 
== C# ==
 
== C# ==
  
[[CSharp|C# sample projects]] for Visual Studio 2003 and 2005 (they also work with VS 2008 and VS 2010) are included in the [http://www.iopus.com/download/imacros iMacros download]. The samples especially show the threading features of iMacros. You can run and control many browsers simultaneously. If you develop 64-bit applications, a [[x64|64-bit version]] of iMacros is available.
+
[[CSharp|C# sample projects]] are included in the [https://www.imacros.net/download iMacros download]. The samples especially show the threading features of iMacros. You can run and control many browsers simultaneously. If you develop 64-bit applications, a [[x64|64-bit version]] the 64-bit iMacros Scripting Interface is automatically used.
  
 
== C++ ==
 
== C++ ==
Line 85: Line 85:
 
== Database Access ==
 
== Database Access ==
  
iMacros can connect to ''any'' database or backend system via its API. The VBS examples below use the ACCESS database, but you can use them with SQL Server, Oracle and any other database by only changing the [http://www.connectionstrings.com/ connection string] in the script.
+
iMacros can connect to ''any'' database or backend system via its API. The VBS examples below use the ACCESS database, but you can use them with SQL Server, Oracle, and any other database by only changing the [http://www.connectionstrings.com/ connection string] in the script.
  
 
#[[Database-2-Web.vbs|database-2-web.vbs]] Submit database information to a website. Shows how to query any database.
 
#[[Database-2-Web.vbs|database-2-web.vbs]] Submit database information to a website. Shows how to query any database.
Line 95: Line 95:
  
 
== Excel ==
 
== Excel ==
The iMacros Browser, IE and Firefox can be integrated with all Microsoft Office products (e. g. Excel, Access). Please see the [[Sample_Code#VBA|VBA]] section for example projects.
+
The iMacros Browser, IE, Firefox, and Chrome can be integrated with all Microsoft Office products (e. g. Excel, Access). Please see the [[Sample_Code#VBA|VBA]] section for example projects.
  
 
== FoxPro ==
 
== FoxPro ==
Line 103: Line 103:
 
== Java ==
 
== Java ==
  
Please see the user forum for an [http://forum.iopus.com/viewtopic.php?t=2703 Eclipse tutorial] and a [http://forum.iopus.com/viewtopic.php?f=6&t=7183 NetBeans tutorial].
+
Please see the user forum for an [https://forum.imacros.net/viewtopic.php?t=2703 Eclipse tutorial] and a [https://forum.imacros.net/viewtopic.php?f=6&t=7183 NetBeans tutorial].
  
 
== Javascript ==
 
== Javascript ==
Line 109: Line 109:
 
The regular Windows Scripting Interface can be used from within [[JavaScript]] and [[JScript]].
 
The regular Windows Scripting Interface can be used from within [[JavaScript]] and [[JScript]].
  
In addition, iMacros for Firefox has a [[iMacros_for_Firefox#Javascript_Scripting_Interface|built-in Javascript Scripting Interface]]. Its syntax is a sub-set of the regular [[Web Scripting]] interface.
+
Older versions of iMacros for Firefox ([[iMacros_for_Firefox_Legacy|version 8 and below]]) used to have a [[iMacros_for_Firefox_Legacy#Javascript_Scripting_Interface|built-in Javascript Scripting Interface]]. This is no longer supported by newer versions of Firefox (Firefox 56 and above) and has been removed from iMacros.
  
 
== Perl ==
 
== Perl ==
Line 117: Line 117:
 
== PHP ==
 
== PHP ==
  
A [[PHP|PHP sample project]] is included in the [http://www.iopus.com/download/imacros iMacros download]. It uses the [[iimRunner]] feature.
+
Please see the [[PHP|PHP sample]].
  
 
== Python ==
 
== Python ==
Line 126: Line 126:
  
 
Please see the [[PowerShell]] tutorial.
 
Please see the [[PowerShell]] tutorial.
 +
 +
#[[self-test.ps1]] Run all iMacros demo macros and create a test report.
  
 
== Ruby ==
 
== Ruby ==
Line 156: Line 158:
 
#[[send-macro-code.vbs]] Directly send macro code to iMacros instance instead of calling locally stored macros.
 
#[[send-macro-code.vbs]] Directly send macro code to iMacros instance instead of calling locally stored macros.
 
#[[self-test.vbs]] Run all iMacros demo macros and create a test report.
 
#[[self-test.vbs]] Run all iMacros demo macros and create a test report.
#[[Read CSV with VBS]] To handle CSV files that are too big for plain macros, use VBS for reading the input
 
 
#[[stresstest.vbs]] Run several iMacros instances in parallel.
 
#[[stresstest.vbs]] Run several iMacros instances in parallel.
 
#[[VBS_looping|Create loops with VBS]] Tutorial with screenshots
 
#[[VBS_looping|Create loops with VBS]] Tutorial with screenshots
 
#[[Loop after Query or Login|Loop only parts of a macro]] Tutorial with screenshots
 
#[[Loop after Query or Login|Loop only parts of a macro]] Tutorial with screenshots
  
Important: iMacros can be controlled with same syntax shown here in ''any'' Windows programming and scripting language. Please see also the [[Tutorials]] page.
+
Important: iMacros can be controlled with the same syntax shown here in ''any'' Windows programming and scripting language. Please see also the [[Tutorials]] page.
  
 
=== How to execute ===
 
=== How to execute ===
Line 168: Line 169:
 
* copy the VBS code to it
 
* copy the VBS code to it
 
* save it as *.vbs  
 
* save it as *.vbs  
* run the script by double clicking the vbs file)
+
* run the script by double-clicking the vbs file)
  
 
== VB.NET ==
 
== VB.NET ==
  
VB.NET sample projects for Visual Studio 2003 and 2005 are included in the [http://www.iopus.com/download/imacros iMacros download].. The samples especially show the threading features of iMacros. You can run and control many browsers simultaneously.
+
VB.NET sample projects for Visual Studio 2003 and 2005 are included in the [https://www.imacros.net/download iMacros download].. The samples especially show the threading features of iMacros. You can run and control many browsers simultaneously.
 
+
== VB6 ==
+
 
+
A complete VB6 projects is included in the [http://www.iopus.com/download/imacros iMacros download]. In addition, all VBS and VBA samples work with VB6 with no or almost no modifications.
+
  
 
== VBA ==
 
== VBA ==

Latest revision as of 10:14, 24 April 2019

Examples for using iMacros efficiently.

All macros and scripts listed here are included in the default installation of iMacros Samples (unless otherwise noted).

No vendor specific scripting language. iMacros does not use an awkward, proprietary vendor specific scripting language. The iMacros Browser, Internet Explorer (with iMacros for IE), Google Chrome (with iMacros Add-on) and Firefox (with iMacros Add-On) can be controlled with any Windows programming or scripting language. We have included samples for the most popular languages on this page. The basic usage is the same in every language.

Macros

iMacros macros are used to describe the page specific interaction.

  1. Demo-AJAX-Tree Move element of an AJAX tree view by drag & drop. No fixed coordinates required.
  2. Demo-ArchivePage Save the current page with custom file name
  3. Demo-Datasource Enter data from textfile (CSV) into web form
  4. Demo-DirectScreen Automate Java Calculator Applet
  5. Demo-Download Automate file downloads
  6. Demo-Draw Record mouse movements for e.g. java applets
  7. Demo-Extract Extract text, HTML code, links, tables
  8. Demo-ExtractAndFill Extract data and directly fill it into another web site
  9. Demo-ExtractRelative Use relative positioning for more easy extraction
  10. Demo-Extract-Table Extract complete table with one command and save data to text file
  11. Demo-Eval Test for value and time ranges in your macro and anything else that can be done with Javascript
  12. Demo-FillForm Fill forms automating input boxes, drop down selections, checkboxes, radiobuttons, etc.
  13. Demo-FillForm_XPath Use XPath to navigate through elements and attributes in an XML document
  14. Demo-Filter Filter pictures for faster page loading
  15. Demo-Flash Automate flash applets
  16. Demo-Frames Automate sites using HTML frames
  17. Demo-ImageDownload Download picture to local disc, take screenshots
  18. Demo-ImageRecognition Automate e.g. a flash plugin by its graphical elements
  19. Demo-JavascriptDialog Handle pop-up dialogs
  20. Demo-Keyword-Assert Asserts that a specific keyword appears on a web page
  21. Demo-Loop-Csv-2-Web Fill textfile (CSV) data to web form
  22. Demo-OfflineDialogs Automates pop-up dialogs (macro runs on local HTML code)
  23. Demo-OfflineExtract Extract data from web sites (macro runs on local HTML code)
  24. Demo-Print Print websites and PDF documents
  25. Demo-SaveAs Save Website in various formats
  26. Demo-SavePDF Download PDF files
  27. Demo-SaveTargetAs Download and save files using custom paths and file names
  28. Demo-Slideshow Loop through thumbnails
  29. Demo-Stopwatch Measure detailed website response times
  30. Demo-Tabs Make use of tabs
  31. Demo-Tagposition The relevance of the POS value in TAG commands
  32. Demo-TakeScreenshots Take screenshot of full page (not just the part visible in the browser)
  33. Demo-Upload Fill in file upload fields
  34. Demo-WebPageDialog iMacros handles web page dialogs
  35. Demo-Web-Test Use macro for web testing
  36. Parse Twitter Tweets Extract information from tweets

Batch Files

The iMacros Browser includes a command line interface, so it can be controlled via batch files.

  1. Example-Batchfile.bat
  2. Example-ErrorLevel
  3. Tray-Example-Batchfile.bat

Task Scheduler

To schedule a certain macro to run at a certain hour, please use the Windows Task Scheduler and the iMacros command line interface (same commands as used in Batch Files.)

You can also call VBS scripts from the command line.

Related chapter: How to run iMacros unattended

Related FAQ: How can I set up a 24 hours a day, 7 days a week (non-stop) operation with iMacros?

ASP

An ASP sample project is included in the iMacros download. It uses the iimRunner feature.

ASP.NET

An ASP.NET sample project is included in the iMacros download. It uses the iimRunner feature.

iMacros ships with a 32-bit and 64-bit version of the Scripting Interface. This allows you to run iMacros directly from any 64-application on Windows x64 systems. For example, you can use it with ASP.NET (IIS) in 64-bit mode. The use of the 64-bit version requires no code changes.

C#

C# sample projects are included in the iMacros download. The samples especially show the threading features of iMacros. You can run and control many browsers simultaneously. If you develop 64-bit applications, a 64-bit version the 64-bit iMacros Scripting Interface is automatically used.

C++

C++ sample projects are available here.

And here is a step-by-step tutorial for a "Hello iMacros World".

Database Access

iMacros can connect to any database or backend system via its API. The VBS examples below use the ACCESS database, but you can use them with SQL Server, Oracle, and any other database by only changing the connection string in the script.

  1. database-2-web.vbs Submit database information to a website. Shows how to query any database.
  2. extract-2-database.vbs Web scrape data into a database.

Delphi

A step-by-step tutorial can be found here: Delphi

Excel

The iMacros Browser, IE, Firefox, and Chrome can be integrated with all Microsoft Office products (e. g. Excel, Access). Please see the VBA section for example projects.

FoxPro

Please see the FoxPro tutorial.

Java

Please see the user forum for an Eclipse tutorial and a NetBeans tutorial.

Javascript

The regular Windows Scripting Interface can be used from within JavaScript and JScript.

Older versions of iMacros for Firefox (version 8 and below) used to have a built-in Javascript Scripting Interface. This is no longer supported by newer versions of Firefox (Firefox 56 and above) and has been removed from iMacros.

Perl

Please see the Perl tutorial.

PHP

Please see the PHP sample.

Python

Please see the Python tutorial.

PowerShell

Please see the PowerShell tutorial.

  1. self-test.ps1 Run all iMacros demo macros and create a test report.

Ruby

Please see the Ruby tutorial.

TCL

Please see the TCL page.

VBS (Visual Basic Scripting)

The following examples are based on the Windows Scripting Host (WSH, VBScript) that is part of Windows.

  1. combine-macros.vbs Shows how to create a custom error report log file
  2. connect-to-ie.vbs Remote control Internet Explorer
  3. connect-to-fx.vbs Remote control Mozilla FireFox
  4. connect-to-cr.vbs Remote control Google Chrome
  5. connect-to-iimrunner.vbs Shows how to work with iimRunner.exe
  6. database-2-web.vbs Submit database information to a website. Shows how to query any database.
  7. extract-2-file.vbs Web scrape data into a plain text file.
  8. extract-2-database.vbs Web scrape data into a database.
  9. extract-and-fill.vbs Web scrape data from one website and submit it to a second website.
  10. file-2-web.vbs Submit information from a text file to a website (Method 1)
  11. file-2-web-method2.vbs Submit information from a text file to a website (Method 2)
  12. get-exchange-rate.vbs Extract exchange rate from a website. Runs in tray.
  13. get-response-times.vbs Measure response times and use them in script.
  14. iimRunner_ASP.vbs Connect to iMacros via iimRunner, like when using ASP or ASP.NET
  15. random-numbers.vbs Fill an online form with random numbers.
  16. send-macro-code.vbs Directly send macro code to iMacros instance instead of calling locally stored macros.
  17. self-test.vbs Run all iMacros demo macros and create a test report.
  18. stresstest.vbs Run several iMacros instances in parallel.
  19. Create loops with VBS Tutorial with screenshots
  20. Loop only parts of a macro Tutorial with screenshots

Important: iMacros can be controlled with the same syntax shown here in any Windows programming and scripting language. Please see also the Tutorials page.

How to execute

In order to execute scripts copied from this site or some other source, do the following:

  • open a new file (e.g. in notepad)
  • copy the VBS code to it
  • save it as *.vbs
  • run the script by double-clicking the vbs file)

VB.NET

VB.NET sample projects for Visual Studio 2003 and 2005 are included in the iMacros download.. The samples especially show the threading features of iMacros. You can run and control many browsers simultaneously.

VBA

The iMacros Browser, IE and Firefox can be integrated with all Microsoft Office products (e. g. Excel, Access):

  1. Excel-VBA-Submit-and-Extract (with screenshots)
  2. Excel-VBA-StockSearch

Recent Project Samples

Click here for some recent project samples

Error Handling

iMacros includes detailed error handling. Even a web browser crash or freeze does not stop the Scripting Interface. Instead, it will simply return an error code and you can start a new instance. Please see the list of general iMacros Error-Codes and Scripting Interface Return Codes.



For more information, please see the Tutorials chapter.