AutoMates - a browser automation utility

I have started another project. I know, i have way more irons in the fire than I can possibly handle. But this one is a good one, and deserves the attention. Browser Automation, tends to be used for testing, automating repetitive tasks, and all sorts of SPAMMING. I will let you're imagine decide how this tool can be used.

Feature Overview

First, this is not a FOSS Project. I am going to be using this for myself, and potentially selling it, if I can come up with a good market strategy.

Now to the features. There are lots of automation utilities around, many are really good but, none have the exact features I am looking for.

  • Intelligent Macro Recorder.
  • Macro Logical Flow Control (Conditional Branching).
  • Content/Context Aware Macro Execution.
  • Saved Profile Management (Session, Cookies, Cache; Per Profile)
  • Built in P2P Macro Sharing.
  • Per Profile Macro Execution
  • Multiple Profile Macro Execution (Parallel Macro Execution)
  • Script-able Macro Calls

Development Roadmap

The simplified roadmap is:

  1. Enable browser context to be separate
  2. Basic Profile Management
    1. Create new Profile
    2. Delete existing Profile
    3. Start Browser Instance Using Profile
  3. Attach external data to Profile (This can be used for website login information, preferences and even data storage for Macros)
  4. Create basic Macro VM (Script Engine of a sorts)
    1. Load context of current Profile
    2. Define basic "Blocks" via script language (JS, or Boo?)
    3. Call Blocks from Macro command
    4. Macro Commands and Blocks are passed the next Macro Command(s) to be executed (Useful for loop and conditional flow)
  5. Scripted Plugin system to distribute custom functionality and configurations for specific uses.

Development Technology

I was originally going to develop this program in Pascal using FreePascal and Lazarus, using the fpCEF3 library. However there are lots of details about CEF which I am not familiar with. This mixed with the lack of any documentation for this library, I have decided to use C# and CEFSharp. This is a .NET wrapper for the same C/C++ library, and contains tons of documentation (Official and Community). With a good size community around CefSharp, I am sure I will get help or at least pointed in the right direction when needed.


That's all for now. Thanks,