BrowserAutomationStudio 22.2.0 has been released
support last edited by
With this update module system is improved.
Module system description.
Modules allow to extend BAS functionality. Each module contains a set of actions, for example, there is a module for working with regular expressions, lists, etc.
Also modules may embed code in the BAS engine and in the browser engine.
Module system improvements:
Added ability to create your own modules.
BAS allows you to turn a project with a list of functions into a module. The selected functions will be converted to new actions. All descriptions that you entered during functions creation will be inserted to the user interface of the new module. Using the module creation dialog, you can specify the description of the new module and select the icon, version, etc. The project that was used to create the module can be reused to update the module, since it saves all the settings. Different functions from one module can call each other.
To create a new module, go to the module manager and click on the "Create new module" button.
Ability to install your own or other people's modules.
BAS allows you to install an unlimited number of modules and thereby extend BAS functionality. Installation takes place for the current instance of BAS, which means that new modules will become available in any project you are working on. You can share your module, to do this, you need to create a module using the "Create new module" button, then transfer the resulting file to another user. It is not difficult to do this, since the module is just a zip archive. Then it can be installed using the "Install Module" button.
Using modules in compiled applications.
After update modules can be used not only in the BAS instance where they were installed, but also in the compiled application. There is no need to perform any additional actions to achieve it. BAS will automatically transfer the necessary information to the project.
Sharing projects with modules.
Consider following example, you send project to another developer, you have certain modules installed and he doesn’t. In this case, he will still be able to run the project and even edit those actions that he essentially does not have. This is achieved through the mechanism of "external modules". After changing the project, the external modules will disappear. It is allowed to transfer projects an unlimited number of times.
BAS loads only those modules that are actually used in the project.
You can install dozens of modules, if not all of them are used, then BAS will not "inflate" the current project with unused modules. Software will automatically analyze the project and just do not connect those modules which are installed but not used. This does not apply to the recording mode, because potentially any installed module can be used while recording.
With a help of module system existing BAS functionality can be changed.
You can change the functionality contained in the native modules. To do this, you need:
Copy the contents of the desired module from
Change the module contents in the "custom" folder.
All changes will be saved in the compiled application.
You can replace any type of file, not just scripts. For example, it is possible to replace the database which contains information about ip addresses.
Node.js can be used inside modules.
It is possible to use not only standard BAS actions, but also Node.js code, including packages from NPM inside modules. BAS will automatically resolve conflicts for different versions of NPM modules in favor of the newer versions. This makes it possible to create wrappers for NPM modules in the form of BAS modules with a user interface.
Module code can be called from Node.js.
Modules adds new actions, which are essentially BAS functions and they obey absolutely the same rules as ordinary BAS functions. For example, they can be called from Node.js using the BAS_FUNCTION method. The name of the function is defined as the name of the module + underscore + name of the action. For example, if the name of the module is TestModule, and the name of the action is TestAction, then the name of the function will be TestModule_TestAction.
The module manager interface has been updated.
Added module search, separate panels for native and user modules, the ability to delete user modules. Code was modified so that manipulations with the modular system does not lead to failures in the recording mode.
Installing modules in manual mode.
To install the module without using the installer, you need to copy its contents to this folder
Thus, the file structure should be like this:
custom\MODULE TITLE\manifest.json and other module files.
This is especially actual for modules created before the update.
It is recommended to install new modules through the "Install module" button.
To share your modules with the community, leave a message in this forum section https://community.bablosoft.com/category/44/share-bas-modules.
Be sure to read about the message format in the attached subject.
If users will actively create modules, then a special registry will be created for them, like NPM.
Omini last edited by
Thanks for the amazing update!
How to add a description of that module function?
Now it's only without description on it
support last edited by
@omini You can set it here