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. https://example.com:8002) for the FinanceManager API.

Navigate the GUI.

.home

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.

.to

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

report

Control the report filters and more.

.byId

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

.depth

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

.daterangeStart

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

.daterangeEnd

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

.filterAccount

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

.showSingleAccount

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

.showAllSummaries

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

.showConsolidatedSummaries

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

.showSummaryAccounts

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

.showSummaryServices

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

.showSummaryInstances

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

.summaryGroupInstanceBy

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

wait

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

.ms

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

.networkIdle

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.

.syncComplete

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


How did we do?