New Features and Update News in AskUI

December 12, 2023
News
text saying new updates up to version 0.13.1
linkedin icontwitter icon

::: callout 📢

We are excited to share the latest updates for AskUI Studio and the askui npm package! These updates include new features, bug fixes, and enhancements to make your AskUI experience even more convenient. Here is an overview of the recent updates:

  • Instruction Completion (AskUI Studio) - We have updated features in AskUI Studio that leads to instruction completion. This feature will help streamline your workflow and improve your productivity. For more details, check out the description below.
  • Interactive CLI - We have introduced an Interactive CLI in the askui npm package. As of version 0.13.0, you can use the seamless and intuitive command-line interface to simplify the setup process for your askui project. To learn more about the improvements, check out the description below or just try it out now!
  • annotate() function for comprehensive debugging - To enhance the debugging capabilities of askui, we have introduced a new feature to the annotate() function. This feature allows you to highlight single elements for more comprehensive debugging. You can find more information below.
  • Adjustable similarity filtering for text elements - We have added a new feature that allows you to adjust the similarity filtering for text elements. This enhancement provides more flexibility in filtering and improves the accuracy of text-based operations. Keep reading for more information.
  • Enhanced matching() filter for textual descriptions - With the latest version (0.13.1) of askui, we have enhanced our matching() filter. This filter allows you to filter elements based on textual descriptions, enhancing the search and filtering capabilities.
  • Reporter (Integrations Platform) - We have introduced a new feature to the reporting system of askui. Aiming to provide more flexibility mainly for enterprise applications, it provides an enhanced adaptability and usability.

AskUI Studio

1. Instruction Completion

First things first. We have improved the auto suggestion for the available commands. Now, as you type in the instruction input field, you will see the next available commands suggested in a list.

And after you finish an instruction, the instruction will labeled as complete, so that you know that the written instruction is valid.

2. Direct Argument Input

You can now input arguments directly after choosing a command. This will help you to have a more fluent and rapid workflow within AskUI Studio.

3. Full API Access

The entire API, including frequently requested features like waitFor() is now accessible in AskUI Studio.

AskUI npm package

1. Interactive CLI

The Interactive Command Line Interface feature simplifies the setup process for the askui project, making it easier and more accessible.

Here is a quick how to use:

  1. Enter npx askui@latest init into the terminal and press enter.
  2. Answer the series of prompted questions:
  3. Preferred framework (e.g., Jest)
  4. Workspace ID
  5. Access token
  6. Proxy usage
  7. Option to add/overwrite tsconfig.json file
  8. The CLI will then automatically:
  9. Detect the operating system
  10. Copy project files
  11. Install askui dependency
  12. Set up the test framework
  13. Copy ESLint config files
  14. Add user credentials
  15. Write askui config
  16. Note: Proxy installation is a manual process, despite log indications.

AskUI npm package is available for free, so you can check it out now!

2. annotate() Can Highlight Single Element

This update introduces an optional AnnotationRequest parameter to the annotate**()** method, allowing you to annotate specific elements retrieved from the user interface by the get() method.

Here is a quick how to use:

  1. Use the get() method to retrieve elements.
  2. Pass the AnnotationRequest parameter to specify which elements to annotate.
  3. Execute the annotation command as shown in the provided example.

-- CODE language-ts line-numbers -- const detectedElements = await aui.get().text().withText("User Interfaces?").exec();await aui.annotate({ elements: detectedElements });


Link to our official API documentation

3. Adjustable Similarity Filtering for Text Element

The update introduces an optional similarity_score parameter for the .withText() method, allowing users to define a custom similarity threshold for text matching, enhancing precision and control in text-based searches. We use rapidfuzz to calculate the similarity of the texts.

Here is a quick example of how to use:

-- CODE language-ts line-numbers -- await aui .text() .withText("978-0-201-00", 90) // Requires at least 90% similarity .exec();


4. Enhanced matching() Function for Textual Description

The 'Matching' feature introduces a method to filter and interact with user interface elements based on a description in natural language.

Here is a quick example of the matching() function:

await aui.click().matching('a mask on purple background and a firefox logo').exec();

Link to our official API documentation

  • The matching() function recognizes color, famous company/product names, and general visual characteristics of elements.
  • The description should be as detailed as possible, including color, notable logos, and general appearance.
  • The feature's ability to accurately identify elements is highly dependent on the specificity and accuracy of the textual description.
  • There may be inconsistencies in recognizing less distinct or unique elements.
  • As an experimental feature, it may not always work as expected and could require multiple attempts to find the right description.

5. Report Integrations Platform

With the latest version of askui package, you can now integrate the test result report of askui into your existing workflows. This platform significantly streamlines the process of integrating askui with various reporting tools. In case you are working for an enterprise application, this feature will allow you to seamlessly incorporate automation results into your existing workflows. It offers a more personalized and efficient reporting experience, tailored to the specific needs of each enterprise environment.

Check out this Github repo for more detail:

Ron van Cann
·
December 12, 2023
On this page