GUI Automation

The GUI automation API consist of a set of JavaScript functions which enables programmatic access to some features normally controlled by a user in the GUI. These functions are grouped in a global window.FinanceManager object.

Control the current user session.

function(string username, string password): void Attempts to login given the username and password.

function(): void Logs out the current user, and cleans up local storage used by the current session.

function(string token): void Attempts to use the given token to login (always refreshes the given token).

function(string root): void Set the domain (e.g. for the FinanceManager API.

Navigate the GUI.


function(): void
Navigate to the root URL of the FinanceManager instance, which is the Dashboard if a user is currently logged in, or the login page otherwise.


function(string path): void
Navigates to the given URL fragment.


Control the report filters and more.


function(int id): void
Select a report definition.


function(int depth): void
Select a reporting depth.


function(string start): void
Select a the reporting start date, in YYYYMMDD format.


function(string end): void
Select a the reporting end date, in YYYYMMDD format.


function(int id): void
Filter the report by showing only this account.


function(bool show = true): void
On the summary report, show only the single account set with filterAccount.


function(bool show = true): void
Show all summaries if on the /reports/summary page.


function(bool show = true): void
Show consolidated summary on the /reports/summary page.


function(bool show = true): void
Show accounts on summary report.


function(bool show = true): void
Show services on summary report.


function(bool show = true): void
Show instances on summary report.


function(string key): void
Group the instances on the summary report by this key. The key argument should be one of: instances, services.


Functions returning a Promise to make it easier to determine the state of the GUI.


function(int|float ms): Promise
Wait for ms and then resolve the returned promise.


function(int waitBefore = 100, int waitAfter = 100, int timeout = 60000): Promise
Wait for the network stack to become idle, optionally specifying:

  • A timeout before starting to detect network traffic
  • A timeout after detecting that the network became idle
  • A timeout after which the promise will reject. Set to 0 to disable.


function(): Promise
Wait for data synchronisation to complete.

How did we do?