askui allows you to automate the interaction with an application, multiple applications or even the entire operating system. You can use this to write end-to-end tests or automate any kind of application.
To use askui follow these steps:
npm init
npm i -D askui
npm i -D jest
npm i -D @types/jest ts-jest ts-node typescript
npx askui init
Visit our documentation for examples and a full list of supported commands.
Important note for Linux users: Currently, Wayland is not supported. You can read more in our troubleshooting chapter. If you want to use the askui library libfuse2 is needed (libfuse2 installation).
The following example shows the use of askui for testing a desktop application.
it('should be able to add to liked songs', async () => {
await aui.click().icon().withText('search').exec();
await aui.typeIn('Bohemian Rhapsody').textfield().exec();
await aui.pressKey('enter').exec();
await aui.moveMouseTo().text().withText('Bohemian Rhapsody').below().text().withText('Songs').exec();
await aui.mouseRightClick().exec();
await aui.click().text().withText('Save to your Liked Songs').exec();
await aui.click().text().withText('Liked Songs').exec();
await aui.expect().text().withText('Bohemian Rhapsody').exists().exec();
});