100% found this document useful (3 votes)
4K views328 pages

Browser Automation Studio GUIDE (Pavel Duglas)

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (3 votes)
4K views328 pages

Browser Automation Studio GUIDE (Pavel Duglas)

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 328

A POCKET GUIDE FOR WEB AUTOMATION

BROWSER
AUTOMATION STUDIO
Pavel Duglas
CONTENT
INTRODUCTION..............................7

Use with BAS..............................................7


Resources..................................................53
Line............................................................55
XPATH.......................................................57
About the author.........................................8

Modules -> Action Blocks-> Functions


How to use the guide................................10


JSON..........................................................59
Script Statistics.........................................62
Regular Expressions..................................64
-> Auto-Scripts..........................................13
Interaction Types in BAS..........................14
Parameters max. mouse movement........16
ADDITIONAL MODULES....................66
Open/Close Browser.....................................66
ГЛАВА 1. BAS МОДУЛИ.................17 Clipboard ......................................................68

MAIN MODULES............................20
Idle Emulation...............................................70
Asynchronous Function
Calls...............................................................72
Browser...................................................23

Script Logic.............................................26
Tools ......................................................29
Network...................................................31
Image Processing..........................................75
Mail.................................................................77
Phone Confirmation.......................................79
Process Management....................................81

Waiting....................................................33
HTTP Client.............................................35
Date and Time.........................................38
SMTP Client (Send Mail)................................83
Telegram........................................................85
Time Zone......................................................87

Changing Browser

File System.............................................42

Fingerprints.............................................44
Interaction with the
User................................................................89
Built-in
List..........................................................47 Languages.....................................................91

Working with Profiles..............................51


Path.........................................................49 Excel..............................................................93
Database.......................................................96
CONTENT
URL..........................................................98 A c t i ons with Res o u r c e s . . . . . . . . . .. . . . . . . . . 1 5 8
Check sum.............................................100 A c t i ons with Str i n g s . . . . . . . . . . . . . . .. . . . . . . . . 1 6 1
Achive.....................................................102 x p a t h Actions... . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . 1 7 4
FTP.........................................................104 S c r i pt Statistic s A c t i o n s . . . . . . .. . . . . . . . . . 1 7 6
R e g ular Expres s i o n
SQL.........................................................106
A c t i ons........... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 7 7
MA N A G E R MO D U L E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 0 8 B r o w ser Openin g a n d C l o s i n g
A c t i ons........... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 7 9
CHAPTER 2. ACTION C l i p board Action s . . . . . . . . . . . . . . . . . .. . . . . . . . . . 1 8 0
BLOCKS.....................................109 Id l e Emulation A c t i o n s . . . . . . . . . .. . . . . . . . . . 1 8 1
BASIC ACTION BLOCKS........................110 A c t i ons of async h r o n o u s f u n ct i o n s . . . 1 8 2
Im a g e Processi n g A c t i o n s . . . . . . . . . . . . . . . . 1 8 3
B r o w ser Action s . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 0 M a i l Actions.... . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . 1 8 6
S c r i pt Logic Act i o n s . . . . . . . . . . . . . . .. . . . 1 2 0 P h o ne Verificati o n A c t i o n s . . . . .. . . . . . . . . . 1 9 0
T o o l Actions.... . . . . . . . . . . . . . . . . . . . . . .. . . . 1 2 9 P r o c ess Contro l A c t i o n s . . . . . . . . . . . . . . . . . . 1 9 3
N e t w ork S M T P Client Ac t i o n . . . . . . . . . . . . . . . . . . . . . . . . . . 1 9 4
A c t i ons........... . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 3 1 te l e gram actions . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . 1 9 5
W a i t ing Actions. . . . . . . . . . . . . . . . . . . . .. . . . . 1 3 6 T i m e Zone Acti o n s . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 9 6
H T T P Client Ac t i o n s . . . . . . . . . . . . . . . . . . . 1 3 8 U s e r Interaction
D a t e and Time A c t i o n s . . . . . . . . . . . . . . . . 1 4 3 A c t i ons........... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 9 8
F i l e system A c t i ons of built - i n l a n g u a g e s . .. . . . . . . . . . . 2 0 0
a c t i ons............. . . . . . . . . . . . . . . . . . . . . .. . . . 1 4 6 E x c e l Actions... . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . 2 0 1
B r o w ser Finger p r i n t D a t a base Actio n s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 0 6
A c t i ons........... . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 4 8 U R L Actions..... . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . 2 1 0
L i s t Actions...... . . . . . . . . . . . . . . . . . . . . . . . . . 1 4 9 C h e cksum Actio n s . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1 3
P a t h Actions.... . . . . . . . . . . . . . . . . . . . . . .. . . . 1 5 3 B a c k up Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1 4
P r o f ile F T P Actions..... . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . 2 1 5
A c t i ons........... . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 5 6 S Q L Actions..... . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . 2 1 9
CONTENT
J S O N actions.... . . . . . . . . . . . . . . . . . . . . .. 2 2 2 S o l v e Captcha w i t h C l i c k s . . . . . . . . . 2 4 4
S o l v e FunCaptc h a . . . . . . . . . . . . . . . . . . . . . 2 4 5
AUXILIARY ACTION BLOCKS................224
S o l v e HCaptcha . . . . . . . . . . . . . . . . . . . . . . . . 2 4 6
D i r e ct Browser S o l v e Recaptch a 2 . 0 . . . . . . . . . . . . . . . . . . 2 4 7
C o n trol............. . . . . . . . . . . . . . . . . . . . . .. 2 2 4 W a i t for Element t o A p p e a r . . . .. . . . 2 4 8
M o v e Mouse and C l i c k o n S c r o lling to an E l e m e n t . . . . . . . . . .. . . . 2 4 9
E l e m ent........... . . . . . . . . . . . . . . . . . . . . . . . 2 2 5 G e t Element Co o r d i n a t e s . . . . . . . . . . . . 2 5 0
C l i c k on Element . . . . . . . . . . . . . . . . . . . .. 2 2 6 G e t Number of I t e m s . . . . . . . . . . . . . . . . . . 2 5 1
M o v e Mouse ove r G e t Element Styl e . . . . . . . . . . . . . . . . . .. . . . 2 5 2
E l e m ent........... . . . . . . . . . . . . . . . . . . . . . . . 2 2 7 S t a r t Dragging o n a n
M o v e Mouse and C l i c k . . . . . . . . . . . . . 2 2 8 E l e m ent........... . . . . . . . . . . . . . . . . . . . . . . . . . 2 5 3
C l i c k............... . . . . . . . . . . . . . . . . . . . . . .. 2 2 9 E n d Drag on Elem e n t . . . . . . . . . . . . .. . . 2 5 4
M o v e Mouse.... . . . . . . . . . . . . . . . . . . . . . . . 2 3 0 S t a r t Drag........ . . . . . . . . . . . . . . . . . . . . . . . . 2 5 5
E n t e ring F i n i sh Drag....... . . . . . . . . . . . . . . . . . . . . . . . 2 5 6
T e x t ................ . . . . . . . . . . . . . . . . . . . . . .. 2 3 1 G e t Link Address . . . . . . . . . . . . . . . . . . .. . . 2 5 7
C l e a r Field....... . . . . . . . . . . . . . . . . . . . . . . 2 3 2 G e t Element At t r i b u t e . . . . . . . . . . . . . . . 2 5 8
E x a m ine the Elem e n t o n t h e S e t Element Attr i b u t e . . . . . . . . . . . . .. . 2 5 9
P a g e................ . . . . . . . . . . . . . . . . . . . . .2 3 3 S e t Combobox V a l u e . . . . . . . . . . . . . . . . 2 6 0
S t a r t Cycle ...... . . . . . . . . . . . . . . . . . . . . . 2 3 4 S e t ComboBox I n d e x . . . . . . . . . . . . . . . . 2 6 1
T a b s................ . . . . . . . . . . . . . . . . . . . . .2 3 5 S e l e ct a Rando m I t e m f r o m a
C h e ck Existenc e o f C o m bobox........ . . . . . . . . . . . . . . . . . . . . .. . 2 6 2
E l e m ent........... . . . . . . . . . . . . . . . . . . . . . 2 3 8
G e t Item Code. . . . . . . . . . . . . . . . . . . . . . . 2 3 9
G e t Text.......... . . . . . . . . . . . . . . . . . . . . . . 2 4 0
E x e c ute Javasc r i p t o n a n
E l e m ent........... . . . . . . . . . . . . . . . . . . . . . 2 4 1
S c r e enshot...... . . . . . . . . . . . . . . . . . . . . . .2 4 2
S o l v e Captcha . . . . . . . . . . . . . . . . . . . . . . 2 4 3
CONTENT
GRAPHIC ACTION BLOCKS....................263 CHAPTER 4: AUTO SCRIPTS...........270
M o v e Mouse and C l i c k o n MA I N T Y P E S O F A U T O MA T I C
E l e m ent........... . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 6 4 TASKS............................................271
C l i c k on an Elem e n t . . . . . . . . . . . . . . .. . . . . 2 6 4
M o v e Mouse ove r A u t o Registratio n . . . . . . . . . . . . . . . . . .. . . 2 7 1
E l e m ent........... . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 6 4 P a r s ing........... . . . . . . . . . . . . . . . . . . . . . . . . . 2 7 3
E n t e ring text..... . . . . . . . . . . . . . . . . . . . . . . . . . . 2 6 5 C h e cking Accou n t s f o r V a l i d
C l e a r Field....... . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 6 5 (C h e cker) ........ . . . . . . . . . . . . . . . . . . . . . . . . 2 7 5
C h e ck for the Ex i s t e n c e o f a n M a i l er/Spammer . . . . . . . . . . . . . . . . . . . . . . . 2 7 7
E l e m ent........... . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 6 5 C h a t-Bot.......... . . . . . . . . . . . . . . . . . . . . . . . . . 2 7 9
W a i t for the Ele m e n t t o A u t o -Posting.... . . . . . . . . . . . . . . . . . . . . .. . . 2 8 1
A p p ear............ . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 6 6 A u t o -Filler (form f i l l e r w i t h o u t
G e t Element re g i stering as G o o g l e P l a y ) . . . .. . . 2 8 3
C o o rdinates..... . . . . . . . . . . . . . . . . . . . . . .. . . . . 2 6 6 C o n tent Genera t o r . . . . . . . . . . . . . . . . . . . . 2 8 5
S t a r t Dragging o n a n F i l e Manager.... . . . . . . . . . . . . . . . . . . . . .. . . 2 8 7
E l e m ent........... . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 6 6 S t r i ng Manager . . . . . . . . . . . . . . . . . . . . . . . . . 2 8 9
E n d Dragging o n A u d io and Medi a C o n t e n t
E l e m ent........... . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 6 6 P r o c essor......... . . . . . . . . . . . . . . . . . . . . . . . . 2 9 1
M o n itoring and D a t a A n a l y s i s . . . . 2 9 3
CHAPTER 3 : B o n us Collecto r . . . . . . . . . . . . . . . . . . . . . . . . 2 9 5
FUNCTIONS................................267 C l i c ker............. . . . . . . . . . . . . . . . . . . . . .. . . 2 9 7
D e s ktop Applic a t i o n
A u t o mator....... . . . . . . . . . . . . . . . . . . . . . .. . . 2 9 9
A n d roid App
A u t o mator....... . . . . . . . . . . . . . . . . . . . . . .. . . 3 0 1
CONTENT
B r o w ser Extens i o n s A u t o m a t o r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .......................303
A P I Integrator.. . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ......................305
A u t o mator Anti d e t e c t B r o w s e r s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .......................307
C h e ater of Socia l A c t i v i t y . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .......................309
A u t o -trader ...... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .......................311
B r u t eforce ....... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .......................313
W e b Applicatio n T e s t e r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .......................315
A u t o mator of A d v e r t i s i n g R o o m s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ........................317
B u s i ness Proce s s A u t o m a t i o n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .......................319
E m p loyee Task A u t o m a t o r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .......................321
S i t e Creation Au t o m a t o r o n C on s t r u c t o r s . . . . . . . . . . . . . . . . . . . . . . . . . . . ........................322
A u t o -Money Tra n s f e r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ......................324

BAS USEFUL RESOURCES.......................................................................326


MY CONTACTS....................................................................................328
Pavel Duglas

FREE CONSTRUCTOR

DOWNLOAD AND USE


BROWSER AUTOMATION STUDIO

This guide has been designed to help


beginners learn BAS more quickly and
effectively. All modules, action blocks,
functions and scripts are used inside the
constructor.

Install and start creating!

APP. BROWSERAUT OMAT I ONST UDI O. ONLI NE


ABOUT THE AUTHOR
My name is Pavel Duglas and I am a professional
RPA Developer and a successful digital
entrepreneur. One of the automation tools for me is
BAS.

With the help of BAS for 3.5 years:

developed 888+ bots for various tasks


earned 4,867,198+ rubles net profit
automated all business processes
went on a permanent passive income

In addition, I founded my online BAS school, the


DefiNova auto-bot marketplace, I am the author of
many online projects on the Internet, I have
Pavel duglas
hundreds of cases in the field of automation.
ABOUT THE AUTHOR

I have helped hundreds of different clients


implement automation in their business and online
earnings.

I want to express my deep gratitude to the BAS


developers and his team for making such a huge
contribution and developing the truly best
automation tool on the market.

This guide is for those who want to learn a new IT


profession and become a BAS developer in the
shortest possible time.

And now I will not delay you, dive in and study BAS
avidly, because this is really our future! pavel duglas
HOW TO USE THE GUIDE?
THE MAIN GOAL OF THE GUIDE: "TAKE AND AUTOMATE"

Many newbies to Browser Automation Studio ask a lot of questions


about modules, actions, and even simply cannot find the right block for
their scripts.
Also, the main problem is that many do not understand how to apply
automation in everyday routine operations.
In Chapter 1, you will get acquainted with the BAS modules and
understand how they work.
In Chapter 2, you will learn about action blocks and how to use them.
In Chapter 3, you will learn about the functions where action blocks are
placed.
Finally, in Chapter 4, you will learn about the main use cases for
automation in Internet activities.

EACH CHAPTER CONTAINS PRACTICAL INFORMATION

pavel duglas
HOW TO USE THE GUIDE?
This book won't tell you "How" to write automation scripts with Browser
Automation Studio, but it will show you the right way to learn the
designer.
The most important thing in the first step is to learn the basic
components and modules of BAS before you start creating.

At the second stage, it is to understand with specific examples where


automation can be applied.

And at the third stage - to automate all routine processes for your own,
and after that, user needs.

Go through all the steps and learn BAS.

ALWAYS KEEP THE GUIDE AT HAND AND USE IT WHILE


USING THE CONSTRUCTOR.

pavel duglas
HOW TO USE THE GUIDE?
Imagine that the entire automation script is built on "LEGO" bricks. You
probably loved this activity as a child, and now it's time to remember
and become like a child's fantasy.

I am going to tell you about several types of automatic scripts that I use
every day. But this is only a small part of what can be generally
imagined ...

With BAS, you can even turn on your refrigerator's light bulb if you want,
your imagination doesn't have to be limited to my examples.

But the auto script examples will help you get started faster and easier
with Browser Automation Studio.

pavel duglas
MODULES

ACTION BLOCKS
BAS WORKLAB
BAS STRUCTURE
FUNCTIONS

AUTO SCRIPTS

pavel duglas
pavel duglas

INTERACTION TYPES IN BAS

BAS internally has 2 different


types of interaction with sites:

1. Opening the URL of the pages


in the browser (normal page
loading as in your regular browser
on a PC)
HTTP CLIENT
WEB BROWSER
2. Sending requests to the web
page server directly without
opening pages in the browser and
rendering the visual component.
pavel duglas

When what
interaction type to use?
WEB-BROWSER
It should be understood that
loading a page in a browser loads
computer resources, therefore,
more than 100-200 threads will not
work.

If you need to work in 1000 threads


or more, then you should use an HTTP-CLIENT
HTTP client that is optimized for
such loads and works completely
without a browser.
Mouse maximum speed settings

SPEED ATTRACTION DEFLECTION


10000 6000 5000

PAVEL DUGLAS
CHAPTER 1
BAS MODULES

"Systems are made up of subsystems, subsystems are made up


of subsystems, and so on ad infinitum - that's why we design from
the bottom up."

Alan Perlis

pavel duglas
pavel duglas

BAS MODULES
Imagine that you go to the store and take a grocery
basket with you. In the store, you liked the Lego set
in a beautiful box and you put it in the basket. But
the box is not empty, but consists of small parts
called LEGO.
The basket is the module in BAS, in which you put
lego sets (functions). And each separate set
contains small parts of the LEGO constructor (action
blocks).

Each module is unique and contains the necessary


components (action blocks) that you will use when
creating functions and automatic scripts.
A C TIO N SET
The developer uses a set of actions to
solve a problem

Concept FU NC TION
modular Actions are placed in special containers

structure for multiple calls with parameters

pavel duglas

MODU LE
Functions are used to create special
blocks called modules for connecting to
projects
pavel duglas

BAS MODULES
Modules in BAS are divided into 2 main types:

1. Main
2. Additional

Core modules are a set of action blocks that you will


use most often in automation.

The main modules are: Browser, Script Logic, Tools,


Network, Wait, HTTP Client, Date and Time, File
System, Browser Fingerprint, List, Path, Profile
Management, Resources, String, XPATH, JSON,
Script Statistics, regular expressions.
PAVEL DUGLAS

BAS MODULES

Each of these modules helps to solve a specific


problem. For example, the browser module allows
you to call a "Download" action that loads the site
you specify at the URL.

We will analyze all of these modules separately and


see what other functions they are intended for.

Additional modules are a set of action blocks that


you will use as needed and you can do without them
if you do not have a specific task for using them.
PAVEL DUGLAS

BAS MODULES

These include: open/close browser, clipboard, idle


emulation, asynchronous function call, image
processing, mail, phone confirmation, process
control, send email, Telegram, timezone, user
interaction, built-in languages, Excel, Database, URL,
checksum, archiving, FTP, SQL.

For example, the image processing module helps


you edit uploaded photos and overlay any text on
them. The Telegram module is used to send
notifications to a convenient messenger.
BROWSER MODULE
BROWSER AUTOMATION STUDIO
PAVEL DUGLAS
PAVEL DUGLAS

"BROWSER" MODULE
The "Browser" module is used to work with actions
(action blocks) that do not require a specific
element to be applied in the browser.

The "Browser" module includes the following


actions: load, current URL, previous page, page code,
text input, resolution, get permission and cursor
position, proxy, javascript, execute on each page
load, reset, open file dialog, start dragging the file ,
prompt window, http authentication, scrolling,
screenshot, solve captcha, recaptcha v3,
PAVEL DUGLAS

"BROWSER" MODULE
solve captcha with clicks, solved incorrectly,
timeout, browser settings, push extension button,
touch screen mode, mouse settings, notifications.

In the future, this list will be supplemented as new


features and actions may appear.

There are plenty of actions in the "Browser" module


to create a simple bot already.
However, each of the actions must be combined
with each other to get a full-fledged automation
scenario.
SCRIPT LOGIC MODULE
BROWSER AUTOMATION STUDIO
PAVEL DUGLAS
PAVEL DUGLAS

SCRIPT LOGIC MODULE

The "Script Logic" module is used to execute


conditions, loops, set local and global variables, sum
them up, call functions in 1 or more threads,
terminate threads in successful and unsuccessful
forms, as well as to interrupt the script.

The "Script Logic" module includes the following


actions: IF, WHILE, FOR, FOREACH, Break, Continue,
Success, Fail, Abort Script, Set Label, Jump to Label,
Ignore Errors, Set Variable, Increment Variable, Set
Global Variable, Increment Global. variable
PAVEL DUGLAS

SCRIPT LOGIC MODULE

Call Function, Get Function Parameter, Return, Call


Function in Multiple Threads.

You will use this module very often in your


automator work, since you will have to work with
loops, variables and conditions, as well as with
function calls.

But don't worry, I'll go into more detail about each


action below so you can understand what they're
used for and how to use them.
TOOLS MODULE
BROWSER AUTOMATION STUDIO
PAVEL DUGLAS
PAVEL DUGLAS

TOOLS MODULE
The "Tools" module is used to display useful
information in the log, display the results of the
script, execute Javascript code inside the script,
parse a string, and generate random numbers.

The module includes the following actions: log, clear


log, result, execute code, parse string, random
number.
NETWORK MODULE
BROWSER AUTOMATION STUDIO
PAVEL DUGLAS
PAVEL DUGLAS

NETWORK MODULE
The "Network" module is used to work with the
browser's network settings such as: cache and its
elements, cookies, browser headers, request masks
and statuses, prohibitions and permissions for file
downloads and pop-up windows.

The module includes: set header, save and load


cookies, load cookies from http client, enable cache,
disable cache, allow request, disable request, clear
cache. data, clear masks, get request status,
whether there was a request, get last cache item, get
all cache items, disable and allow pop-ups and file
downloads.
WAITING MODULE
BROWSER AUTOMATION STUDIO
PAVEL DUGLAS
PAVEL DUGLAS

WAITING MODULE
The "Waiting" module is used to cause pauses
between the actions of your automatic scripts, to
wait for selectors, texts, download files, browser
address, load a specific site URL, and also for the
full page load.

The module is relatively small and contains: wait for


full load, wait for URL to load, wait for browser
address, wait for text, wait for CSS, wait for file to
load, sleep.
HTTP CLIENT MODULE
BROWSER AUTOMATION STUDIO
PAVEL DUGLAS
PAVEL DUGLAS

HTTP CLIENT MODULE


The "Http-Client" module is used to work with
requests to the web server and site, bypassing its
visual component. That is, the work is carried out
entirely without a browser.

The module is popular with professional developers


who have a good understanding of the server side of
sites and know how to interact with it.

The module contains the following actions: HTTP


client proxy, client reset, Get request, Post request,
Download, Current URL, response content, response
status, get header, set header, clear headers,
PAVEL DUGLAS

HTTP CLIENT MODULE

save and load cookies, load cookies from browser,


exit after error, did it occur, get error text, Xpath get
XML, each XML, get text, get each text, get number
of elements, check for existence.

You won't need HTTP requests initially, since almost


all tasks are performed through the browser, but it
will take a little longer.
DATE AND TIME MODULE
BROWSER AUTOMATION STUDIO
PAVEL DUGLAS
PAVEL DUGLAS

DATE AND TIME MODULE


The "Date and Time" module allows you to flexibly
work with dates and times.

BAS uses its own date and time representation.


The number of milliseconds in the conversion is
counted from January 1, 1970, 00:00:00 UTC.

The starting point is midnight (UTC) from December


31, 1969 to January 1, 1970, the time from that
moment is called the "UNIX era" (Eng. Unix Epoch).

UNIX time is a time encoding method adopted by


operating systems.
PAVEL DUGLAS

DATE AND TIME MODULE


UNIX time is consistent with UTC.

The method of storing time as a number of seconds is


very convenient to use when comparing dates (up to a
second), as well as for storing dates: if necessary, they
can be converted to any conveniently readable format.

Date and time in this format also take up very little


space (4 or 8 bytes, depending on the size of the
machine word), so it is reasonable to use it for storing
large amounts of dates. In most cases, it's more
efficient to store time as a single value rather than as
a set of fields.
PAVEL DUGLAS

DATE AND TIME MODULE

The "Date and Time" module is rich in its actions:


string to date and back, milliseconds to date and back,
create date, change date, add seconds to date,
difference between dates, date now, change and get
time zone, day of month, week , years, get the year,
month, hours, minutes, seconds and milliseconds from
a date.

If you plan to call a script at a specific time, then this


module is perfect for you. Or you can use the built-in
task scheduler.
FILE SYSTEM MODULE
BROWSER AUTOMATION STUDIO
PAVEL DUGLAS
PAVEL DUGLAS

MODULE DESCRIPTION
The module was created to simplify the work with
files on your computer.

This includes important actions such as: read a file,


write to a file, file/folder information, create and
delete a folder, move, copy a file/folder, search for
files, read or write a file to a list.

If your task is to work with text types of files or


pictures or a folder, then you will often use this
module.
BROWSER FINGERPRINT
SWITCHER MODULE
BROWSER AUTOMATION STUDIO
PAVEL DUGLAD
PAVEL DUGLAS

MODULE DESCRIPTION
The module was created to change the parameters
and properties of the browser in which you perform
automatic operations.

A browser fingerprint is a set of properties and


characteristics of your computer or laptop that are
determined by the site you visit (this is a video card,
screen resolution, fonts, browser extensions, laptop
battery, etc.)

Swapping a device or browser fingerprint is always


necessary when you work with any sites, as they
analyze and identify the same devices.
PAVEL DUGLAS

MODULE DESCRIPTION
Device substitution is optional if you work in 1
thread.

But if you do not replace the device during multi-


threaded work, then the site will calculate you and
impose any restrictions.

Browser fingerprints are by default free for spoofing


Chrome devices.

If you need advanced settings and other devices


such as Iphone, Android, Firefox, then you need to
pay a subscription to the fingerprint database for 1
or 3 months. It's not expensive!
LIST MODULE
BROWSER AUTOMATION STUDIO
PAVEL DUGLAS
PAVEL DUGLAS

MODULE DESCRIPTION
The "List" module is used to work with arrays (lists).

A list or array is an ordered finite set of elements.


For example, a list of tasks, names, surnames,
emails, accounts, phones.

Often you will have to work with a large number of


accounts for a site, and this is where lists come in
handy.

For example, you need to use only 1 specific


account from the list, and not all.
MODULE PATH
BROWSER AUTOMATION STUDIO
PAVEL DUGLAS
PAVEL DUGLAS

MODULE DESCRIPTION

Choose the right path, not the easy one.


This module allows you to work with dynamic paths
and get information from them.

A dynamic path is a path to a file or folder that


changes depending on its location.

For example, you are working with profiles and you


need to place them in the root folder with the script
while it is running. Or, for example, you need to
determine the file extension from the received path.
MODULE FOR WORKING WITH PROFILES
BROWSER AUTOMATION STUDIO
PAVEL DUGLAS
PAVEL DUGLAS

MODULE DESCRIPTION
The module is designed to create and switch
between browser profiles.

By default, BAS uses the Chromium browser engine


and the same profiles as in the regular Chrome
browser.

Profiles are folders that store your information


about visited sites, extensions, cookies, saved cache
from site pages and other important information.

Profiles help you save authorization on sites and not


re-authorize on them..
RESOURCE MODULE
BROWSER AUTOMATION STUDIO
PAVEL DUGLAS
PAVEL DUGLAS

MODULE DESCRIPTION
The "Resources" module allows you to work with
script resources in BAS.

Resources are input global script parameters that


can dynamically change during operation.

Resources are used as settings when starting an


automation script.

For example, it can be the number of streams, a txt


file with accounts, mails, randomly generated data,
etc. etc.
MODULE STRING
BROWSER AUTOMATION STUDIO
PAVEL DUGLAS
PAVEL DUGLAS

MODULE DESCRIPTION
One of the largest modules in the line.
Allows you to perform any operations with strings,
including trimming and clearing extra characters
and even extracting mail, phone numbers and links
from them.

Most often in the module you will use "Random


String", "Template", "Get Length", "Replace String"
and "Parse CSV String".

For example, using "Random string" you can


generate a random password for registering a new
account.
XPATH MODULE
BROWSER AUTOMATION STUDIO
PAVEL DUGLAS
PAVEL DUGLAS

MODULE DESCRIPTION
The module allows you to work with XPATH.

XPATH - query language for HTML/XML pages.

One of the commonly used modules in BAS, with


which you can extract elements and texts from
pages very quickly.

For example, you are making an Avito parser using a


browser and you need to get specifications, a
description, and a photo from a product card.

XPATH will help you with this.


JSON MODULE
BROWSER AUTOMATION STUDIO
PAVEL DUGLAS
PAVEL DUGLAS

MODULE DESCRIPTION
The module is used to work with the generally
accepted JavaScript Object Notation (JSON) data
format.

JSON is a text data exchange format based on


Javascript and is a kind of type: {"key":"value"}.

This is a set of pairs: key and value (in which any of


the values is represented inside double quotes,
except for numeric values). The entire JSON object
is in curly quotes. Also, the key can contain a nested
object in curly quotes, also a third nesting, and so
on.
PAVEL DUGLAS

MODULE DESCRIPTION
The "JSON" module is useful when you need to
collect information from a site (for example,
contacts) and you send a request to receive it
through the "HTTP-Client" module.

Then in the response, most often you will receive a


string in JSON format.
This is where a set of actions is needed to extract all
the data from there.

For example, if you collect information about an


organization, then this may be a name, phone
number, email address, and other information that is
useful to you.
SCRIPT STATISTICS MODULE
BROWSER AUTOMATION STUDIO
PAVEL DUGLAS
PAVEL DUGLAS

MODULE DESCRIPTION
This module is used to get statistical performance
of your scripts.

For example, it can be the thread number, the


number of successful executions, and the number of
unsuccessful executions.

A useful module when you need to call a script on


certain threads, for example only 2 and 4.

Then you can use the IF construct and check the


thread number in the autoscript.
REGULAR EXPRESSIONS MODULE
BROWSER AUTOMATION STUDIO
PAVEL DUGLAS
PAVEL DUGLAS

MODULE DESCRIPTION
The module is designed to replace and search for
strings in files or multiple files.

This is what regular expressions are.

Better than a simple search in topics, which allows


you to create a template of conditions by which you
should find a substring and do some manipulations
with it.

BAS works with regular expressions easily and


simply and can extract data from strings, replace
them or group them.
MODULE OPEN
CLOSE BROWSER
BROWSER AUTOMATION STUDIO

PAVEL DUGLAS
PAVEL DUGLAS

MODULE OPEN
CLOSE BROWSER
This module contains only 2 actions: closing and
opening the browser.

Used when you need to more flexibly manage the


state of your browser or browsers in threads.

The browser is closed by default. When using the


"Open Browser" action, it opens automatically.

But if you close the browser manually, then


automatically it will no longer open.

This is where module actions come in handy.


CLIPBOARD MODULE
BROWSER AUTOMATION STUDIO
PAVEL DUGLAS
PAVEL DUGLAS

CLIPBOARD MODULE
This module is used to work with the clipboard on
your computer.

The clipboard is a temporary storage for information


that you have recently copied.

There are 2 actions available in the module: read the


clipboard and write to the clipboard.
IDLE EMULATION MODULE
BROWSER AUTOMATION STUDIO
PAVEL DUGLAS
PAVEL DUGLAS

MODULE DESCRIPTION
This module, as the name suggests, is used to
provide random actions in the browser instead of
normal sleep.

Idle emulation manifests itself in the form of


scrolling the site page using the mouse wheel,
moving the mouse around the screen and sleeping.

The module contains only 1 action: idle emulation.

It is used as an alternative to regular sleep so that


the Yandex Metrica web browser or any other
tracking systems sees that you are an ordinary
person on their site.
MODULE ASYNCHRONOUS
FUNCTION CALL
BROWSER AUTOMATION STUDIO
PAVEL DUGLAS
PAVEL DUGLAS

MODULE DESCRIPTION
The module is used to work with asynchronous
functions.

Asynchronous functions are special action


functions that run independently of the main work of
your script, in parallel with it, and which can be
suspended midway through execution.

The call of ordinary functions is accompanied by the


strict execution of the entire chain of actions and
the return of the result.
PAVEL DUGLAS

MODULE DESCRIPTION
In the case of an asynchronous function, you can
run it in parallel without interfering with the work of
the main function and receive the results of
execution while passing through the automation
script.

For example, if you need to work with two sites at


the same time: the first site monitors the arrival of a
code from an email message or collects any
information necessary for another site, and the
second site waits for this letter to be received or
waits until the necessary information is written to
the variable.
IMAGE PROCESSING MODULE
BROWSER AUTOMATION STUDIO
PAVEL DUGLAS
PAVEL DUGLAS

MODULE DESCRIPTION
The module is used for editing and processing
images that you will upload in any of your tasks.

For example, you are making a script for automatic


posting in Telegram and you need to put some kind
of watermark, text or description on the picture.
This module will help you with this.

Also very often you need to solve captchas and


comparing one image with another will be very
useful.
MAIL MODULE
BROWSER AUTOMATION STUDIO
PAVEL DUGLAS
PAVEL DUGLAS

MAIL MODULE
The module is used to receive and process the
content of letters in mail services.

For example, if you register accounts on any sites


where you receive registration confirmation letters
or a special confirmation code.

This module is equipped with all the necessary


functionality for this kind of tasks, it is completely
free and comes in the official BAS assembly.
PHONE VERIFICATION MODULE
BROWSER AUTOMATION STUDIO
PAVEL DUGLAS
PAVEL DUGLAS

PHONE VERIFICATION MODULE


The module allows you to work with SMS services
for receiving activation codes, reset calls and their
further use in your scripts.

SMS services are specialized sites that provide


services for renting numbers to receive activation
codes from various sites.

Most services are already built into this module (for


example, sms-activate.ru), but you can also write
your own module for services that are not available
by default.
PROCESS MANAGER MODULE
BROWSER AUTOMATION STUDIO
PAVEL DUGLAS
PAVEL DUGLAS

PROCESS MANAGER MODULE


This module is designed to call various .exe files on
your computer in parallel with the auto-script, as
well as to call Batch/Bat scripts.

BAS scripts are sequential commands called from


the CMD command line.

For example, you need to show a dialog box or play


some Windows system sound, or get a list of
running processes using WMIC.

WMIC is a utility program for managing Windows


processes.
SEND EMAIL MODULE
BROWSER AUTOMATION STUDIO
PAVEL DUGLAS
PAVEL DUGLAS

MODULE DESCRIPTION
The module is used to send emails via the SMTP
protocol.

SMTP is a network protocol for transmitting email


over the Internet.

Each Email service has its own SMTP server through


which you can send emails.

But due to all sorts of spam, many email services


limit the sending speed and quantity via SMTP, and
also introduce additional. application passwords.
TELEGRAM MODULE
BROWSER AUTOMATION STUDIO
PAVEL DUGLAS
PAVEL DUGLAS

TELEGRAM MODULE
The module allows you to work with sending
messages to Telegram.

The standard module only works with sending, but


there is also an advanced one that allows you to
send files, documents, screenshots and text with
buttons.

Useful if you run a Telegram channel and need new


content or just want to be notified when the bot is
successful.

You can also manage BAS scripts via Telegram.


TIME ZONE MODULE
BROWSER AUTOMATION STUDIO
PAVEL DUGLAS
PAVEL DUGLAS

TIME ZONE MODULE


The module is designed to adjust the location
according to the ip-address, coordinates, time zone
and other properties.

Usually not used in practice, as it is replaced by an


action block called "Proxy".

It is useful and practical to adjust the parameters


according to the ip address, because at the slightest
discrepancy between your proxy IP and the one that
the site sees, you will have problems with
anonymity.
USER INTERACTION MODULE
BROWSER AUTOMATION STUDIO

PAVEL DUGLAS
PAVEL DUGLAS

USER INTERACTION MODULE


The module allows you to transfer manual control to
the user during the execution of an auto-script,
perform sound alerts, request user input, and
execute Javascript inside web interfaces.

For example, you made your first bot and at some


stage a captcha pops up that you do not want to
solve automatically through the service. Of course,
you resort to the "Give manual control" action, then
in the process you can intervene in the execution,
solve the captcha and transfer control back.
EMBEDDED LANGUAGES MODULE
BROWSER AUTOMATION STUDIO
PAVEL DUGLAS
PAVEL DUGLAS

EMBEDDED LANGUAGES MODULE

The Embedded Languages module is used to call


sections of code using NodeJS and its NPM
modules.

If you are an advanced user and you need to perform


non-trivial tasks, then this module is ideal for you to
implement. Also, the module is useful if you have
already written ready-made code and want to use it
at some stage of your automation script.

The module contains 1 activity: Node.js


EXCEL MODULE
BROWSER AUTOMATION STUDIO
PAVEL DUGLAS
PAVEL DUGLAS

EXCEL MODULE
BAS also has a built-in and powerful module for
working with Excel spreadsheets by default.

In the module you will find all the necessary action


blocks for building automation related to Excel
spreadsheets.

It contains: creating a file, reading, writing, deleting,


inserting and number of rows and cells, reading and
writing sheets, cell areas, importing, exporting files
to and from resources, getting a list of sheets,
adding, moving, renaming, deleting, clearing sheets ,
PAVEL DUGLAS

EXCEL MODULE
cells and cell areas, converting to JSON and back,
finding one or more cells by content, getting and
setting formulas in cells, styles, getting and setting
column widths, line heights, close the file.

The module allows you to fully automate work with


Excel without resorting to third-party software and
writing code.
DATABASE MODULE
BROWSER AUTOMATION STUDIO
PAVEL DUGLAS
PAVEL DUGLAS

DATABASE MODULE
This module is used to work with the built-in
MongoDB database from BAS.

The module is designed to work with a local


database.

It is used as an alternative to Excel, text files, only


with more structured and larger data.

You can receive records from the database, record,


group, update and delete them in an unlimited
amount.
URL MODULE
BROWSER AUTOMATION STUDIO
PAVEL DUGLAS
PAVEL DUGLAS

URL MODULE
This module allows you to work with URL-type
strings, User-Agents and encoding/decoding strings.

For example, you need to change the protocol from


http to https, replace some extra characters, cut
protocols and www, parse data from URL, create or
change URL, parse user agent into components,
encode or decode URL or turn it into Punycode.

Punycode is a method for converting Unicode


characters to allowed domain names.
CHECKSUM MODULE
BROWSER AUTOMATION STUDIO
PAVEL DUGLAS
PAVEL DUGLAS

MODULE DESCRIPTION
The module is used to calculate the checksums of
strings and files.

A checksum is a value obtained as a result of


hashing using a certain algorithm.
Looks like: 5d41402abc4b2a76b9719d911017c592
or any more complex types.

There are 64 hashing algorithms inside the module,


including SHA-256, md5 and others.

It is mainly used when working with an HTTP client


(requests). Personally, I used it when auto-filling ads
in TikTok Ads via API.
ARCHIVE MODULE
BROWSER AUTOMATION STUDIO
PAVEL DUGLAS
PAVEL DUGLAS

ARCHIVE MODULE
This module is used to work with RAR/ZIP/7z
archives.

Useful when you need to download large


compressed files from websites or a server and then
decompress them locally via a script.

The module contains: unpack the archive, archive


the folder, files, get the list of files from the archive.
FTP MODULE
BROWSER AUTOMATION STUDIO
PAVEL DUGLAS
PAVEL DUGLAS

FTP MODULE
The module allows you to connect to remote servers
via FTP/SSH/SFTP protocols and work with the file
system.

FTP is a network file transfer protocol.

It will be extremely useful to use when automatically


uploading sites or html pages to hosting.

For example, you are engaged in traffic arbitrage


and you need to generate a lot of HTML pages for
different advertising offers and upload them to the
hosting as a spacer.
This is where this module comes in handy!
SQL MODULE
BROWSER AUTOMATION STUDIO
PAVEL DUGLAS
PAVEL DUGLAS

MODULE DESCRIPTION
The module is used for full-fledged work with
MySQL, mariaDB, postGres, SQLite and msSQL
Databases.

You can create a remote database on hosting and


make SQL queries to it, getting, changing, updating
or deleting data from tables.

For example, you have several lists of accounts that


have duplicates and you want to check them for
validity by writing them to your personal database
on the server. Then you can add an account after
checking it to the database and check if it is already
in the database.
PAVEL DUGLAS

MODULE MANAGER
BROWSER AUTOMATION STUDIO

Allows you to create new modules, install


ready-made modules and enable / disable
installed ones.
Anyone can create their own module and
give it to anyone.
Modules are packaged in .zip format
Modules are made up of functions that are
built from action blocks.
CHAPTER 2
ACTION BLOCKS
INGREDIENTS

"Everything needs to be designed from the top down, except for


the foundation to start from."

Alan Perlis
PAVEL DUGLAS

BROWSER ACTIONS
Action "Download" - calls the specified URL to the
site with a possible indication of the referer
parameter.
Referer is the source of the transition to the site.

Current URL - allows you to get the address of the


page of the site running in the BAS browser.
The CURRENT_URL variable is set by default and can
be changed to any other.

Previous Page - Allows you to perform a "back"


action on a BAS browser page.
PAVEL DUGLAS

BROWSER ACTIONS

Page code - is used to save the HTML code of the


loaded page of the BAS browser.
SAVED_PAGE_HTML variable stores the html format
of the site page, which can be used to get elements
using the XPATH parsing method.

Text input - used to enter text on focused elements


that are in focus. NOT TO BE CONFUSED with text
input by selector!

Allows you to adjust the speed of text input in


milliseconds and emulate pressing some buttons
from the keyboard.
PAVEL DUGLAS

BROWSER ACTIONS

Resolution - allows you to change the screen size of


your browser. The default is 1024 x 768.

Get resolution and cursor position - serves to get


the screen size of the running browser and the XY
position of the mouse cursor.

Proxy - used to change the IP address and change


the geolocation parameters in the browser. Works
with 2 main types of proxies: http and socks5. You
can flexibly configure the settings and adjust to the
running browser profile.
PAVEL DUGLAS

BROWSER ACTIONS
Javascript is an action block used to call Javascript
code inside the BAS Web Browser.
NOT TO BE CONFUSED with Run Code! This action is
only performed within the running browser, not
within specific threads.

Execute every time the page is loaded in the browser


- this action calls JavaScript inside the browser at
the very start of the page loading in the window.

Reset - the action is used to clear cookies, cache,


proxies, headers, user agents and other parameters
of your browser profile.
PAVEL DUGLAS

BROWSER ACTIONS

Dialog open file - used to start working with files on


the browser page. This action must be performed if
you want, for example, to upload an avatar. It is
performed in 2 stages: first, the "Dialog open file" is
called and then click on the element with the avatar.

Start Drag File - This action is similar to opening a


file, but is used to drag and drop a file into the
browser. For example, if you drag a file from a
computer to a site into a special file upload block.
PAVEL DUGLAS

BROWSER ACTIONS

The "prompt" window is a special dialog box that


pops up for optional input from the user of any data.
NOT TO BE CONFUSED with modal windows, that's
different! Most sites no longer use the prompt
window.

HTTP Authentication - this is similar to the prompt


window, but only for entering authorization data, for
example, to connect to a site through a proxy using
a login and password.

Scroll - used to scroll the browser page by scrolling


along the X and Y coordinates. You can use the
mouse wheel or touch.
PAVEL DUGLAS

BROWSER ACTIONS
Screenshot - used to take a screenshot of the
browser page by X and Y coordinates.
The width and height of the screenshot are also
specified.
The screenshot is saved in base64 format.

Solve captcha - used to solve text-graphic captchas


(Image To Text). The input parameters are a
captcha image in base64 format, a captcha solving
service, an Api key of the service, the URL of a
captcha service or a program for solving captchas
(optional).
CAPTCHA_RESULT - the variable saves the result
after solving the captcha by the service or program.
PABEL DUGLAS

BROWSER ACTIONS
RecaptchaV3 - an action that allows you to solve the
invisible new version of Recaptcha 3rd version. The input
parameters are the choice of solution service + Api key +
add. parameters indicating the minimum humanoid rating,
server URL (optional) and proxy sent to the service.

Solve captcha with clicks - an action similar to "Solve


captcha", only for solving graphic captcha images and then
clicking on them.

Input parameters: picture-grid of 9 pictures in base64


format, solution service, Api key, solution description (what
you need to click on) + server URL and delays.

The result of the action is a list (array) of


COORDINATES_LIST coordinates to click on. The action of
clicking on pictures by coordinates is not performed in this
action!
PAVEL DUGLAS

BROWSER ACTIONS
Solved incorrectly - this action sends a request to the
captcha solving service about an incorrect solution. The
action is used when, for example, you solve a captcha to
enter your personal account and could not enter it due to an
incorrectly solved captcha. In this case, you can send a
request "Solved incorrectly" and the service will not charge
you money for the solution.

Timeout - an action used for global settings of waiting for


loading elements, site pages, captcha solving time. Useful
when you don't want each action, such as "Load" to have a
page load timeout.

Browser settings - an action for setting various browser


parameters before starting work for a particular stream. In
action, you can call extensions, configure WebRTC, WebGL,
browser command line arguments, and many other options.
Most often used to work with extensions.
PAVEL DUGLAS

BROWSER ACTIONS

Press the extension button - this action calls a specific


extension in the BAS browser by ID or by its name.
Performing this action is similar to clicking on the extension
icon in your browser.
Before using this action, you must first install the extension. To
do this, use the "Browser settings" action.

Touch screen mode - the action allows you to enable or


disable touch events to emulate a mobile device. The usual
mouse cursor will be replaced with a round icon with the ability
to swipe.

Mouse Settings - action allows you to globally set the speed


and behavior of all mouse movements in your project. Speed,
attraction and deflection parameters are set.
Notifications - an action that allows you to enable or disable
your browser's pop-up notifications when you visit a site.
SCRIPT LOGIC ACTIONS

IF - action block of conditions. With this action you can


program various conditions.

For example, does the string contain certain words or a >=


b, or does the list of sites contain site #8.

With conditions, you can make your auto-scripts work more


correctly.

BAS has a built-in convenient expression builder that


visually helps you compose any condition.

It is also worth knowing that if the condition expression


contains something other than True or False, then it will still
be converted to True or False (boolean types).

PAVEL DUGLAS
IF CONDITION CONSTRUCTOR
BROWSER AUTOMATION STUDIO

Allows you to build complex conditions


quickly and easily without knowledge of
Javascript and other languages. Just
connect blocks together and build chains
of conditions that will turn into expressions
understandable by BAS.

PAVEL DUGLAS
SCRIPT LOGIC ACTIONS
While - an action that invokes a while loop, known from
programming as a conditional loop.
Thanks to this loop, you can perform a set of actions until a
certain condition is met. For example, you are working with
a list of sites and you want to visit each site no more than
once. You prescribe the condition that If the number of sites
> 0, then continue to sort through the sites.

For - an action that calls a for loop that runs a specified


number of times from border A to border B. For example, if
you need to write a message to the user 5 times, then
setting the for loop from 1 to 5 will allow you to do this.
CYCLE_INDEX is a variable containing the current value of
the cycle (always an integer).

Foreach - an action that invokes a foreach loop that iterates


through the elements in the list one by one. For example,
you have a list of users who you want to add as friends.
FOREACH_DATA is a variable containing the current value of
the cycle.

PAVEL DUGLAS
SCRIPT LOGIC ACTIONS

Break - an action that allows you to stop the execution of


any of the loops in BAS.

Continue - an action that allows you to continue the


execution of any of the BAS loops, skipping the previous
value.

Success - an action that signals the successful execution of


a task in the thread and its closure. Indicated in green. In
the event that all actions are performed correctly, BAS sets
the termination status to successful for that thread.

Fail - an action that indicates that the task in the thread has
failed and is closed. Marked in red. This action has the
option of not restarting the thread upon completion.
It is important to understand that this action only stops the
current thread, not the entire script.

PAVEL DUGLAS
SCRIPT LOGIC ACTIONS

Interrupt script - an action that allows you to completely


interrupt the work of the entire script and all its threads.
Unlike "Fail", the action stops the entire script. You can also
stop the script instantly with an additional option.
An instant stop is when the execution of all functions inside
the script is stopped without waiting for them to be
executed.
Indicated in red as "Fail".

Set label - an action that allows you to set a checkpoint or


savepoint where you can return at any time during the script
execution. Labels allow you to move from one point in your
script to another. A very useful tool when it is difficult to
think through the logic or there is not enough knowledge.
It is not recommended to use labels very often, if you go too
far with them, the script can become unreadable and
difficult to change. It's better to use recursive functions
instead, but more on that later.

PAVEL DUGLAS
SCRIPT LOGIC ACTIONS

Jump to label - an action that allows you to jump to a


predefined label set by the "Set Label" action. It is a
movement, like a teleport, from point A to point B.

Ignore Errors - an action that allows you to skip non-


working functions or actions in your script. For example, you
get the number of subscribers from the site from the user
and at some point something went wrong or did not load,
and as a result, the action will be interrupted by the script
with a red error. To prevent this from happening and the
script continues to work, you must use ignoring errors.
I talked about this in more detail in my course:
"BAS Basics on the example of the Freebitcoin crypto site".

Set Variable - The action allows you to initialize a variable in


your automation script for later use.
It is important to note that the variable has 3 types: integer
(int), expression (expression) and string (string).

PAVEL DUGLAS
SCRIPT LOGIC ACTIONS
Increment variable - an action that allows you to increase
the number of specified variable by N by the "Set variable"
action. This is analogous to the mathematical summation
operation A+N, where N is any integer or fractional number,
depending on the type.

Set Global Variable - An action that sets a global variable


for the entire project. This kind of variables is used in all
threads at the same time, and not locally in threads.
For example, if you enable 4 threads, then all of the four
threads will know the global variable and you can build a
condition through it.
It is important to remember that resources are used to
implement global lists.

Increment global variable - an action similar to


incrementing a local variable, only works with global
variables.

PAVEL DUGLAS
SCRIPT LOGIC ACTIONS

A function call is an action that calls a function at any


position in the autoscript you specify. Functions are
containers containing action blocks. Each action within the
functions is performed sequentially. You will learn more
about functions in Chapter 3.

Get function parameter - an action that allows you to


specify the receipt of a parameter within a specific function.
FUNCTION_PARAMETER is a default variable.
Function parameters are special variables that are passed
as input to a function to ensure the execution of a task.

Return is an action that returns the result of a function. At


the input, the parameters of the function are given, and at
the output, "Return" (return) is obtained. Each function has
some result of execution.

PAVEL DUGLAS
SCRIPT LOGIC ACTIONS
Calling a function in multiple threads is an action that
allows you to call a function in N number of threads right
inside the global thread.

FLOW
FLOW 1

FLOW 2
U N C T I ON
F

FLOW N

PAVEL DUGLAS
TOOL ACTIONS

Log - serves to display any useful information for the


creator and user. For example, errors in work, any values
from the site, page code, element code, mail, accounts, etc.
Useful to use after or before executing any functions in your
autoscript.

Clear log - allows you to clear the entire log of the work
process. Useful when the number of entries in the log is
saturated and cleanup is required.

A result is an action that records specific results from your


script. For example, you register accounts on the site and
you need to see the account + password. Results can be
displayed in a maximum of 9 tabs.

Execute code - an action that allows you to call Javascript


code. The code is called within the thread, not the browser.
NOT TO BE CONFUSED with the Javascript action.

pavel duglas
TOOL ACTIONS

Parse string (obsolete) - an action that allows you to split


and parse data by predefined separators. Standard
delimiters like ":", ";", ","
The action is great for multi-accounts when you need to
separate the email from the password in the list.
A similar action is "Parse CSV string", it will be discussed
later.

Random number - an action that generates a random


number from a given range of A and B. Works only with
integers and expressions.
RANDOM_NUMBER - a variable that stores the result of a
random combination.
Useful for randomizing actions in your browser. For
example, if 0 falls out, then click on the link on the site, and
if 1, then click on the button.

pavel duglas
NETWORK ACTIONS

Set header - the action sets the headers inside the browser
(headers) that the site reads when entering.
There are 2 types of headers available by default:
-User-Agent
-Accept-Language

Save cookies - an action that saves the current cookies


from the browser.

Cookies are files with information received when visiting a


web resource. Used to save authorization on the site so as
not to re-enter your personal account.

Download cookies - an action similar to saving cookies only


for downloading them. Used to enter the personal account
of the site without re-authorization.

pavel duglas
NETWORK ACTIONS

Load cookies from http client - action that loads cookies


directly from the HTTP client. It is used when you perform
operations on the site using HTTP client requests and you
want to use the saved cookies from it in the future in the
browser.

Allow cache - an action that allows cached data to be


stored on the site by mask.
A cache is data stored in a browser so that it can be
accessed more quickly when a page is loaded.
The mask is the input to find what you need to store in the
cache. If set to *, then any cache data will be saved to the
browser profile.
Works only on pages that will be loaded after this action is
called.

Disable cache is the opposite of enabling cache.

pavel duglas
NETWORK ACTIONS

Allow request - an action that allows you to allow


downloading requests coming from the site by mask. For
example, you may want to only allow specific URLs to be
loaded on a page without any extra ones.

Deny a request is the opposite of allowing a request. For


example, you do not want to load a request with a banner ad
on the site or images in *.gif format.

Clear cached data - an action that allows you to remove


information about all loaded Url from the cache.

Clear masks - an action that deletes all previously added


cache masks.

pavel duglas
NETWORK ACTIONS

Get request status - an action that allows you to track and


get the status of a request by mask. Useful when you want
to know if the URL you specified loaded correctly or not.
Request status = 200 (successfully processed request).

Was there a request - an action that tracks whether the


request specified by the mask has completed or not.
Returns 0 if not and 1 if yes.

Get last cache item - an action that allows you to get the
last item from the received cache data by mask. There is an
additional option to store the cache element in base64
format.

Get All Cache Items - The action gets all possible saved
cache items from the browser profile and saves them as a
JSON object.

pavel duglas
NETWORK ACTIONS

Block pop-ups - an action that disables all pop-ups on the


site. Called before the page is loaded. For example, you
don't want to see popup/popunder windows loading.

Allow pop-ups is the opposite of blocking.

Deny file downloads - an action that prohibits downloading


files from sites.
By default, browsers automatically download files, and if the
site calls for a download request, the browser will upload
the file to downloads.

Allow file uploads is the opposite of denying.

pavel duglas
WAIT ACTIONS

Wait for Full Load - an action that allows you to wait until
the page is loaded until the end and the site request is
completed completely. By default, the wait is set to 60
seconds. This setting can be changed. The action waits
until all elements on the page have fully loaded, which can
take a long time.

Wait for Loading Url - an action that allows you to wait for a
specific URL to load when the page loads. Useful when you
want to wait for a specific outgoing request from a site.

Wait for browser address - an action that allows you to wait


for a specific URL in the browser's address bar to load.
Useful when you want to wait for, for example, the "/cabinet"
login page.

Wait for text - an action that waits for the specified text to
appear on the page of the loaded site. Useful when you need
to wait for loading, such as the words "Welcome" on a site.

PAVEL DUGLAS
WAIT ACTIONS

Wait for css - an action that waits for the specified CSS
selector of the element to appear on the site page. Useful
when you want to wait for a button to appear, for example
with a specific ID (#button).

Wait for File Download - an action that waits until the file is
completely downloaded on the site page. It is used when
you need to wait for the file to be fully loaded on the site.

Sleep is an action that sets the sleep or wait in milliseconds


between the actions of your auto-automation script. You
can set a random value FROM and TO.

1 second will be equal to 1000 milliseconds when specified.

pavel duglas
HTTP CLIENT ACTIONS

HTTP Client Proxy - an action that establishes a proxy


connection in the client when making requests to the site's
web server. An action similar to using a proxy in a browser,
only acting on the HTTP client.

HTTP Client Reset - an action that clears all headers,


cookies requests to zero state.
Complete reset of all client settings.

Get request - an action that allows you to make requests


using the GET, HEAD, DELETE, TRACE, OPTIONS methods.
Add. the field allows you to specify the request headers that
the site and the web server see when sending.
Used to get the site page code directly from the web server
or some data to use.

pavel duglas
HTTP CLIENT ACTIONS

Post request - an action for executing requests using the


POST, PUT, PATCH methods. Used to make changes to the
site database or to get some results from it. For example, to
search for products on the site without a browser.

Unlike GET, a POST request has a Post Data field


(parameters passed in the request) and also an indication of
the content type (application/x-www-form-urlencoded,
multipart/form-data, application/json) and the encoding of
the request in which data. Add. the field allows you to
specify the request headers that the site and the web server
see when sending.

Download - the action allows you to download files from the


specified URL in the request. For example, it can be a
picture from a website, or a captcha, or a video or audio file.
An additional parameter is to specify the path where the file
will be saved.

pavel duglas
HTTP CLIENT ACTIONS

Current URL - an action that allows you to get the address


of the request from the last request sent and after the
redirect. Similar to the "Current URL" action in the browser,
but for the HTTP client.

Response content - an action that allows you to get the


response body of the sent request. For example, it can be a
site page code or data in JSON format. You can also specify
the appropriate request encoding to correctly display, for
example, Russian letters in the request.

Response status - an action that allows you to get the


status of the last request. As stated earlier, status = 200 is a
successfully processed request. There are a large number
of statuses, for example, 403, 500, 502 and so on.
Depending on the status, you can build further script logic.

pavel duglas
HTTP CLIENT ACTIONS

Get header - an action that allows you to get a specific


request header that came in the response. For example, it
may be some important parameter for authorization or
cookies.

HTTP Client Set Header - an action similar to "Set Header"


in the browser for the client only. Allows you to set any
headers for the request. For example, User-Agent and
others.

Clear Headers is an action that clears all request headers


that have been set using the "HTTP Client Set Header"
action.

HTTP Client Save Cookies - action that saves cookies from


the HTTP client to the SAVED_COOKIES variable. DO NOT
CONFUSE with saving cookies in the browser!

pavel duglas
HTTP CLIENT ACTIONS

HTTP Client Load Cookies - action that loads cookies into


the HTTP client.

Load cookies from browser - action that loads cookies


received from the browser. For example, if you logged in
through a browser, you can send cookies to the HTTP client
with this action so that it understands that it is also
authorized.

Exit after error/Was there an error/Get error text -


deprecated actions for error handling. Not used, ignoring
errors instead.

Xpath get xml/Xpath get each xml/Xpath get text/Xpath get


each text/Xpath get number of elements/Xpath check for
existence - actions that perform XPATH operations on the
received site page code. The action is applied to the
response of the last request!

pavel duglas
DATE AND TIME ACTIONS

String To Date - The action converts a string to a date type.


The format can be set manually or selected from ready-
made options.

Date To String - The action converts a date to a string. The


format can be set manually or selected from ready-made
options.

Milliseconds To Date - The action converts milliseconds to


a date type. For example, 1669560997 translates to
11/27/2022 5:56:37 PM.

Date in Milliseconds - the reverse of the previous one.

Create Date - the action creates a new date with the


specified year, month, day, hour, minute, second,
millisecond, and time zone parameters.

pavel duglas
DATE AND TIME ACTIONS
Change Date - the action changes the specified date
according to the specified year, month, day, hour, minute,
second, millisecond and time zone parameters.

Add Seconds To Date - action adds seconds, minutes,


hours, days to the specified date.

Difference Between Dates - The action returns the


operation of the difference between two dates in seconds.
For example, 11/27/2022 18:00:00 and 11/27/2022
17:00:00 will return a result of 3600 seconds (1 hour
difference).

Date Now is an action to get the current time and date.


Records the current date and time at the time this action
was called.

Change Date Time Zone - an action that changes the time


zone of the specified date from -840 minutes to +720
minutes.

pavel duglas
DATE AND TIME ACTIONS
Get Date Time Zone - actions to get the time zone from the
specified date.

Day of the Month/Day of the Week/Day of the Year - actions


to get the day of the month, week and year respectively.

Get Year From Date/Get Month From Date/Get Hours From


Date/Get Minutes From Date/Get Seconds From Date/Get
Milliseconds From Date - actions to get the year, month,
hours, minutes, seconds and milliseconds from the
specified date.

pavel duglas
FILE SYSTEM ACTIONS

Read File - reads the entire contents of the file, with the
ability to read byte by byte and in base64 format.

Write To File - writes data to a file at the specified path and


3 options: adding a line ending character, appending the file,
and in base64 format.

File/Folder Information - returns information about files and


folders, namely existence, size, file folder, whether it is a
folder and last modified date.

Create Folder - creates a folder in the specified directory.

Delete File/Folder - deletes a file or folder from the


specified path.

Move File/Folder - moves a file or folder to the specified


path.

pavel duglas
FILE SYSTEM ACTIONS

КCopy File/Folder - makes a copy of a folder or file at the


specified path.

File Search - searches for files by mask and content with


the ability to specify folders, files and subfolders.

Read File To List - reads data from a file into a list.

Write List To File - writes the list to a file with the possibility
of appending the file and adding a line ending character.

pavel duglas
BROWSER FINGERPRINT ACTIONS

Get Fingerprint - Gets the fingerprint of the specified device


(Windows Chrome by default) from the Browser Automation
Studio servers. To get all types of devices, you need an API
key. It is also possible to adjust the browser resolution,
Perfect Canvas and getting prints from your base.

Apply Fingerprint - Applies and modifies a browser


fingerprint that contains: user agent, screen size, navigator
properties, fonts, and more.

Performance fingerprint - Misrepresents how a site


receives data about your browser and device. You can
specify time warp parameters and measurement time.

pavel duglas
ACTION LIST

Create List - creates a new list with initial three values (may
be empty).

Add Item - adds the specified data from the variable to the
end of the list.

Get Element - gets data from the list by index with the
possibility of deletion after receiving.

First Item - Gets the first row of data from the list, with the
option to delete it after getting it.

Last Item - Gets the last row of data from the list, with the
option to delete it after getting it.

Random Item - Gets a random string of data from a list, with


the option to delete it after getting it.

pavel duglas
ACTION LIST
Insert Element - inserts a row of data at the specified
position in the list by index.

Set Item - Changes the data string at the specified list


position by index.

Remove By Index - removes an element at a specific index


from the list.

Remove By Value - removes all elements that have the


given value from the list.

Number of Items - Gets the number of rows or items in the


list.

Contains - checks if the list contains the exact specified


value. You should search for the entire line!

Sublist - gets a sublist consisting of a certain number of


elements of the original list in the specified FROM and TO
range.

pavel duglas
ACTION LIST

Delete Part - removes a specific range of elements from the


list.

Remove Duplicates - Removes duplicate values, excluding


blank lines.

Merge to String - Merges all elements of the list into a


string using the specified delimiter.

Parse String - splits a string into a list by a specified


delimiter.

Get Index - Gets the index of the element with a specific


value from the list.

Copy List - makes a complete copy of the specified list.

Sort - Sorts all elements of the list in alphabetical order.

pavel duglas
ACTION LIST

Shuffle List - shuffles all the elements of the list in random


order.

Merge Lists - adds all the elements from one list to another.

Compare Lists - compares two lists and returns true if the


lists contain the same values.

pavel duglas
ACTION WAY
Get filename from path - Gets the last part of the specified
path. For example, if the path is
"C:/duglas/bas/pavelduglas.txt/", then the action will return
"pavelduglas.txt".

Get folder from path - Gets the directory of the specified


path.

Get File Extension - Gets the file extension of the specified


path.

Is an absolute path - Check if the specified path is absolute.


For example, if the path is "/duglas/bar", then the action will
return true, and if the path is "duglas/bas" or "bas/", then the
action will return false.

pavel duglas
ACTION WAY
Merge Paths - Merges several paths into one. For example,
if the parameters "Path 1" and "Path 2" are specified, whose
values are respectively "/duglas" and "/bas", then the action
will return "/duglas/bas".

Normalize path - this action will return a normalized path,


multiple slashes will be replaced with single ones,
backslashes "\" will be replaced with regular "/", segments
".." and "." will be resolved.

Parse path - parses the path into the elements root,


directory, last part, file extension, file name, list of path
elements. This action will store each element of the path
into its own variable.

pavel duglas
ACTION WAY

Project File Path - Gets the full path to the project file. This
action will return the full path to the project file. If the script
is not compiled, then this action will return the path to the
open project file. And if the script is compiled, then this
action will return the path to the project.xml file located in
the root folder of the engine.

Project Directory Path - Gets the full path to the project


directory. This action will return the full path to the project
directory.

Installation Path - Gets the full installation path of the BAS


engine. This action will return the full path to the directory
where the executable is located.

Get system path - Gets the system path with the specified
name. For example, User Profile - Path to the profile of the
current user. Example: "C:/Users/Duglas".

pavel duglas
ACTIONS WORKING WITH PROFILES

Create or switch to a permanent profile - creates or


switches to a profile at the specified path, loading proxy and
device fingerprint (by default). This action creates a folder
and stores cookies, cache, localstorage, etc. there, making it
a complete portable browser profile. If the specified folder
already exists, the browser will load the profile data from it.

Switch to temporary profile - switches to a temporary


profile, which is used in the recording mode by default
unless otherwise specified in the automation script. If a
temporary profile is used, a new temporary profile will be
created.

Copy profile to another folder - copies the current profile to


the specified folder. It will work correctly only if the profile is
not busy with any thread.

pavel duglas
ACTIONS WORKING WITH PROFILES

Delete profile - deletes the specified profile.


You can delete the current profile by running this action with
an empty string. In this case, the browser will be stopped.

After deleting the current profile, a new temporary profile


will be used. This action will only stop the browser if you
delete the current profile.

Get information about the current profile - gets the


necessary information about the profile, such as: profile ID,
whether proxies are used, browser fingerprint.

pavel Duglas
RESOURCE ACTIONS

Create Resource - creates a new resource. Each resource


contains a container of data, such as lines from a file. Unlike
lists, the resource system helps to distribute data across
threads, and also handles various situations that arise when
data is used concurrently in multithreaded mode. You can
specify the number of successful and unsuccessful runs,
concurrent use, and intervals between uses.
There are also 2 additional parameter.

Wait for appearance is a very important parameter, it


determines the behavior in case when the list of resource
data is empty. If this setting is enabled, then the action that
receives the resource will wait until the data is available, if
the setting is not selected, then the action will fail instantly.
When the 'Greedy' setting is selected, the resource system
will try to get the same row again and again until that row
exhausts the number of successes or failures, and only then
the next row becomes available.

pavel duglas
RESOURCE ACTIONS

Remove Current Item - removes the current value from the


resource. The current line is the line that was last received
in the current thread. For example, if you have a 'Proxy'
resource and that proxy is banned from the target site, you
can use this action with the resource name 'Proxy'. This will
remove the proxy from the file and it will never be used
again for the duration of the script.

Add Element - Adds a new element to the resource. For


example, add a new line to a file or a new record to a
database.

Resource Location - Gets the path where the resource is


loaded from.

Resource To List - copies data from a resource to a list.

List To Resource - Copies a list to a resource.

pavel duglas
RESOURCE ACTIONS

Reload Resource - reloads lines from a file or record from a


database. The resource data will be completely replaced
with new ones. All states of all data (the number of
successes and failures of the resource) will also be reset. If
some rows were deleted, this information will also be lost.

Number of Elements In Resource - Gets the number of


elements in the resource at the current moment. With this
action, you can process the output of the result "All data has
been processed for the resource".

pavel duglas
ACTION LINE
Is a string - checks if the specified data is a string. This
action will return true or false depending on whether the
specified data is a string.

Not an empty string - checks if the specified data is not an


empty string. This action will return true or false depending
on whether the specified data is not an empty string. For
example, if "Douglas BAS" is specified, then the action will
return true, and if "" or 123 is specified, then the action will
return false.

To String - Converts the specified data to a string. This


action will return a string representation of the specified
data. This action works with any data type. For example, if
123 is specified, then the action will return "123", and if true
is specified, then the action will return "true".

To Number - Converts the specified string to a number.


This action will return the numeric representation of the
specified string. For example, if "123" is specified, then the
action will return 123, and if "123.45" is specified, then the
action will return 123.45.

pavel duglas
ACTION LINE

Format number - formats and converts the specified


number to a string. With this action, you can bring the
number into a more readable form, for example, for further
output to the log. This action will return a formatted string
representation of the specified number.

For example, the number 1967567.3245 will be converted to


the string "1,967,567.3245" if a comma is specified in the
Decimal Separator parameter and a space is specified in the
Thousand Separator parameter.

Number of substrings - Gets the number of substrings in a


string. This action will return a number equal to the number
of substrings in the string.

For example, if the string "Duglas Bass" and the substring


"ac" are specified, then the action will return 2, and if the
string "Pavel Duglas" and the substring "Pavel" are specified,
the action will return 1.

pavel duglas
ACTION LINE

Get Substring - Gets a substring from a string. This action


will return the resulting substring. For example, to get the
substring "example" from the string "Just an example of a
string", you need to specify 7 in the "From index" parameter,
and 13 in the "To index" parameter.

Get substring between - gets a substring between two


substrings. This action will return the resulting substring.
For example, to get the substring "Paul Douglas" from the
string "<h1>Paul Douglas</h1>", you need to specify "<h1>"
in the "Left substring" parameter, and specify "</h1> in the
"Right substring" parameter ".

Delete part of a string - deletes a part of a string and/or


inserts a new one. This action can either remove part of the
string, or insert a new part, or both. This action will return
the string obtained as a result of all manipulations.

PAVEL DUGLAS
ACTION LINE
Lowercase - Converts all letters in a string to lowercase.
This action will return a string in which all letters will be
lowercase and the rest of the characters will remain
unchanged. For example, the string "DUGLAS" would be
converted to the string "Duglas" and the string "Paul
Douglas" would be converted to the string "Pavel Duglas".

Upper Case - Converts all letters in a string to upper case.


This action will return a string in which all letters will be
uppercase and the rest of the characters will remain
unchanged. For example, the string "bas" will be converted
to the string "BAS" and the string "browser bas" will be
converted to the string "BAS BROWSER".

Contains - Check if a string contains a substring.


This action will return true or false depending on whether
the string contains a substring. For example, if the string
"Test text" and the substring "text" are specified, then the
action will return true, and if the string "Just an example
string" and the substring "test" are specified, the action will
return false.

PAVEL DUGLAS
ACTION LINE
Get Length - Gets the number of characters from a string.
This action will return a number equal to the number of
characters in the string. For example, if the string "Test text"
is specified, then the action will return 14, and if the string
"Just an example string" is specified, then the action will
return 20.

Capitalized Word - Converts the first letter of the word to


upper case. This action will return a string in which the first
letter is uppercase and the rest remain unchanged.
For example, if the string "test text" is specified, then the
action will return "Test text", and if the string "just an
example string" is specified, then the action will return "Just
an example string".

Number of words - get the number of words from a string.


This action will return a number equal to the number of
words in the string. For example, if the string "Test text" is
specified, then the action will return 2, and if the string "Just
an example string" is specified, then the action will return 3.

pavel duglas
ACTION LINE

Split sentence into words - splits a string into words. This


action will return a list containing the words obtained from
the string. For example, if the string "Test text" is specified,
then the action will return ["Test","text"], and if the string
"Just an example string." is specified, then the action will
return ["Just","example","strings"] .

Split text into sentences - splits the string into sentences.


This action will return a list containing the sentences
retrieved from the string. For example, if the string "Just
sample text. Test text, string" is specified, then the action
will return ["Just sample text.","Test text, string"], and if the
string "Test text! Test text! Test text!" , then the action will
return ["Test text!","Test text!","Test text!"].

pavel duglas
ACTION LINE

Find substring - finds a substring in a string. This action will


return a number equal to the index of the beginning of the
first substring found, or -1 if the substring was not found.
For example, if the string "Test text" and the substring "text"
are specified, then the action will return 9, and if the string
"Just an example string" and the substring "test" are
specified, the action will return -1.

Starts with - checks if the string starts with the specified


substring. This action will return true or false depending on
whether the string starts with the specified substring. The
result can be used together with the "If" action. For example,
if the string "Test text" and the substring "Test" are
specified, then the action will return true, and if the string
"Just an example string" and the substring "example" are
specified, then the action will return false.

pavel duglas
ACTION LINE

Ends with - checks if the string ends with the specified


substring. This action will return true or false depending on
whether the string ends with the specified substring. The
result can be used together with the "If" action. For example,
if the string "Test text" and the substring "text" are specified,
then the action will return true, and if the string "Just an
example string" and the substring "example" are specified,
the action will return false.

Insert into - inserts a substring into a string. This action will


return the string resulting from inserting the substring. For
example, if the string "Just strings", the substring "example"
and index 7 are specified, then the action will return "Just
sample string".

Base64 encode/decode - encodes or decodes a string to


base64. Base64 encoding represents binary data as an ascii
string. BAS stores binary data as base64 strings. These can
be files, images, videos, etc.

pavel duglas
ACTION LINE

Template - creates a new variable or changes an existing


one to multiline text. Can replace spintax, resources,
variables with their values. An action can be used to load a
template from a file or generate it dynamically. It is best
suited if you need to generate text for posting.

Replace String - This action searches the string specified by


the "Original String" parameter for the values specified by the
"Replace From" parameter and replaces them with the value
specified by the "Replace With" parameter. This action
replaces all occurrences, not just the very first one.

Random string - will generate a random string with the given


length and allowed characters.

Newline character - will create a string containing a newline


character. This action will return a string containing a line
break.

pavel duglas
ACTION LINE
Merge Strings - combines multiple strings into one. This
action will return a string made up of all the specified strings.
For example, if the parameters "Line 1" and "Line 2" are
specified, with values equal to "Just an example" and
"Strings" respectively, then the action will return "Just an
example of a line".

Romanize - converts all letters to Latin.


This action will return a string in which all letters will be
romanized, and the rest of the characters will remain
unchanged. For example, the string "ỆᶍǍᶆṔƚÉ
áéíóúýčďěňřšťžů" would be converted to the string "ExAmPlE
aeiouycdenrstzu" and the string "Hello world!" will be
converted to the string "Privet mir!".

Decline - declines the word depending on the specified


number. This action will return one of the three words
matching the declension to the specified number. For
example, if the words "account", "account", "accounts" are
specified and the number is 5, then the action will return
"accounts", and if the number is 22, then the action will return
"accounts".

pavel duglas
ACTION LINE
Parse CSV string - parses a CSV string into elements. This
action will parse the string according to the specified
delimiters and store the parsed data according to the
specified variables. For example, if the string
"[email protected]:mypass1" and the variables
USERNAME,PASSWORD are specified, then the action will
store "[email protected]" in the [[USERNAME]] variable and
"mypass1" in the [[PASSWORD]] variable.

Create CSV string - creates a CSV string from several


elements. This action will return a CSV string composed of
all the specified elements separated by the specified
character. For example, if the parameters "Element 1" and
"Element 2" are specified, the values of which are
respectively equal to "test" and "text", and the separator is ":",
then the action will return "test:text".

Align - aligns the line at the edges. This action will return a
string, from the beginning and end of which unnecessary
characters, such as spaces, line breaks, tabs, will be cut off.

pavel duglas
ACTION LINE
Clear - clears the string of unnecessary characters. This
action will return a string from which all unnecessary
characters will be removed, such as multiple spaces, line
breaks, tabs. For example, if the string "Test text" is
specified, then the action will return "Test text", and if the
string "Just an example string" is specified, then the action
will return "Just an example string".

Extract all emails - Extracts all email addresses from a


string. This action will return a list containing the email
addresses obtained from the string. For example, if the string
"Test text is [email protected]. Just an example text is
[email protected].", then the action will return
["[email protected]", "[email protected]"].

Extract all links - extracts all links from the string.


This action will return a list containing the links obtained
from the string. For example, if the string "Test text
http://test.com, string test example.org" is specified, then
the action will return ["http://test.com", "example.org"].

pavel duglas
ACTION LINE

Extract all phone numbers - extracts all phone numbers from


a string. This action will return a list containing the phone
numbers obtained from the string. For example, if the string
"Test text is 89001112233. Just sample text is +7 900 999
4455.", then the action will return ["89001112233", "+7 900
999 4455"].

Special HTML characters encode/decode - encodes or


decodes a string containing special HTML characters.
This action can work in two modes: encoding and decoding.
The modes can be switched by the parameter "Encrypt or
decrypt".

For example, if the string "<div>Blah blah blah</div>" is


specified and encode mode is enabled, the action will return
"&lt;div&gt;Blah blah blah&lt;/div&gt;". And if the string
"&lt;h1&gt;Text title&lt;/h1&gt;" and decode mode is enabled,
the action will return "<h1>Text title</h1>"

pavel duglas
XPATH ACTIONS

xpath get xml - performs an xpath query and finds the xml of
the first element that matches the query. This action looks
for the element's xml (html code). There is additional option
to terminate with an error or just return an empty value. For
example, if there is a page code "<html><h3>BAS</h3><br>
<h3>BAS2</h3></html>", then upon request //h3 will return 1
value equal to "<h3>BAS </h3>".

xpath get each xml - performs an xpath query and finds the
xml of each element that matches the query. From the
previous example, making a query //h3 will return a list of
values ["<h3>BAS</h3>","<h3>BAS2</h3>"].

xpath get text - performs an xpath query and finds the text of
the first element that matches the query. The result of this
action is text. For example, if an element has xml
<div>Mr.Duglas</div>, then its text is 'Mr.Duglas'.

pavel duglas
XPATH ACTIONS

xpath get each text - executes an xpath query and finds the
text of all elements that match the query. The result of this
action is a list, each element of which is a text. For example,
if an element has xml <div>word</div>, then its text is 'word'.

Xpath get number of elements - makes an xpath query and


counts the number of elements received. For example, if the
element has xml <div>word</div><div>word2</div>
<div>word3</div> and you make a request //div then it will
return value = 3.

Xpath Exist Check - Checks if there is at least one element


that matches the xpath query. For example, if the element
has xml <div>word</div> in the specified page code, it will
return true, otherwise false.

pavel duglas
SCRIPT STATISTICS ACTIONS

Thread number - gets the number of the currently running


thread into the THREAD_INDEX variable.

Successful Executions - Gets the number of successful


executions of the current script and stores it in the
SUCCESS_NUMBER variable.

Failed Executions - Gets the number of failed executions of


the current script and stores it in the FAIL_NUMBER
variable.

pavel duglas
REGULAR EXPRESSION ACTIONS

First occurrence - will apply the regular expression, get the


first piece of text that matches it, extract the groups of
matches. Regular expression is a convenient mechanism for
string processing. It helps to search for strings, split a string
into parts, etc. You can think of a regular expression as
some kind of mask or pattern that a given string must
match. An example of how a regular expression works can
be described as follows: 'Find in the text a sequence of
letters followed by the @ symbol, followed by any sequence
of letters, or a dot'. Converting this description to a regular
expression, \w+@[a-zA-Z\.]+ is a simple expression to
search for mail in the given text.

Extract all data - extracts all data from the specified string
that matches the regular expression. For example, if the
string is abc 123 xyz 456 and the regular expression is \d+
then the regular expression will extract all the numbers
found in the text and the resulting list will be ["123", "456"].

pavel duglas
REGULAR EXPRESSION ACTIONS

Whether the string matches the regular expression -


checks if the string matches the regular expression, returns
the result to a variable. The variable specified in the 'Does
string match regexp' parameter will be true or false
depending on whether the string matches the regular
expression.

Split string - splits the text with a regular expression. For


example, if the string is word1,word2;word3|word4 and the
regular expression is [,;|] then the result will contain a list
with all the words ["word1", "word2", "word3", "word4"].

Replace String - Applies a regular expression, replacing all


matches with the target string. For example, if the string
Random text [email protected] [email protected] and
the regular expression @[^\.]*\.[\s]* (this regular expression
will match the @ character along with the mail domain) ,
and the parameter ' Replace with' is @gmail.com, the result
will be Random text [email protected] [email protected].

pavel duglas
BROWSER OPEN/CLOSE ACTIONS

Open Browser - The action creates a new browser and


opens it. By default, the browser is only created after the
first activity that uses the browser is run. Once the browser
is created, it will not be stopped until the end of the thread.

If the script contains at least one 'Open Browser' or 'Close


Browser' action, then the manual browser control mode is
enabled. This means that you must explicitly specify all the
places where the browser should be created and the places
where the browser should be closed.

If you try to use the browser when the browser hasn't been
created or is already closed, the stream will fail.

Close Browser - an action that closes the browser created


with the 'Open Browser' action. This action is not required to
work with the browser.

pavel duglas
CLIPBOARD ACTIONS

Read Clipboard - action that reads the current clipboard


value in text/plain and text/html formats. Base64 saving is
also available.

Write To Clipboard - action that writes the current clipboard


value in text/plain and text/html formats.

IMPORTANT: the clipboard in BAS is distributed to all


threads at the same time during operation, so this action is
recommended to be used only in 1 thread.

pavel duglas
IDLE EMULATION ACTIONS

Idle emulation - allows you to simulate human-like actions


in the browser, namely scrolling, scrolling, moving the
mouse, sleeping. You can specify a specific set of actions in
the list in the desired order.

pavel duglas
ACTIONS OF ASYNCHRONOUS FUNCTIONS

Calling a function asynchronously - executes a function


asynchronously without waiting for it to complete. The
action runs the function in parallel with the main threads.

Wait for asynchronous function to complete - waits for an


asynchronous function to complete and return some
execution result.

Get the result of an asynchronous function - Gets the result


of a function from the Return action, with the ability to get
the status of the result, the function's operation, success,
and errors.

Interrupt asynchronous function - this action will


immediately stop the execution of the asynchronous
function on the specified thread ID.

pavel duglas
IMAGE PROCESSING ACTIONS

Start working with image - loads an image in base64 format


and assigns an ID value to it for further work with it.

Finish Image - frees memory and closes the job with the
specified image ID.

Create Empty Image - creates an empty image with the


specified height, width, RGBA colors.

Change Image Format - Changes the image ID format from


PNG to JPEG and vice versa.

Get image data - gets the original image after work in


base64 format for further saving.

Get pixel color - gets RGBA images by XY coordinates.

pavel duglas
IMAGE PROCESSING ACTIONS

Set pixel color - sets RGBA colors on the image by XY


coordinates.

Get Size - Gets the width and height of the specified image
by ID.

Resize - Resizes the width and height of the specified image


by ID.

Insert one image into another - inserts a small image into a


large one.
The target image is the larger image. The source image is a
small image that is smaller than the target image. If you mix
up both images, then BAS will simply crash!

Search for one image in another - searches for a match of


one image in another at the specified coordinates and the
Threshold parameter (how accurate the match is).

pavel duglas
IMAGE PROCESSING ACTIONS

Fill rectangle with color - fills the rectangle with RGBA color,
sets its width, height and XY fill coordinates.

Get part of the image - gets a part of the cropped image at


the specified XY coordinates and width, height.

Add text - adds text to the specified image, specifying fonts,


alignment, color, text size, width, height and position
coordinates.

pavel duglas
MAIL ACTIONS

Set up receiving mail - creates the initial settings for


working via IMAP/POP3 with the mail client, specifying the
port, encryption, login, password, folder with letters,
connection and reset timeouts.

Mail receiving proxy - sets the proxy server for connecting


the mail client.

Get contents of last mail - retrieves the last sent mail to the
specified mailbox and folder.

You can additionally delete the message after opening, set


the receipt flags, receive certain metadata such as:
message ID, sender, recipient, subject, message body, size,
date of receipt, attached files.

pavel duglas
MAIL ACTIONS

Find id of the last letter - gets the ID of the last letter sent
to the mailbox with additional configuration of the mail
folder.

Get the content of one letter by criteria - gets the body of


the letter according to the criteria: does it contain a subject,
sender, recipient, text, flags, date of receipt, with the
possibility of sorting, parsing.

Find the id of one letter by criteria - similar to the action


Find the id of the last letter only by filters, parsing and
additional. settings.

Find id of several letters by criteria - similar to Find id of


one letter by criteria only for the list of letters.

Get message content by id - gets the body of the message


by the specified ID, taking into account the criteria.

PACEL DUGLAS
MAIL ACTIONS
Get the number of emails by criteria - gets the number of
emails by specified filters and criteria.

Delete letter by id - deletes a letter by the given ID with the


possibility of specifying a specific folder.

Copy letter by id - makes a duplicate letter from one folder


to another by ID.

Move letter by id - similar to copying, but completely moves


the letter.

Get message flags by id - get message statuses like: read,


answered, marked, deleted, draft and others.

Set email flags by id - sets email flags or replaces existing


ones.

Delete email flags by id - remove flags from a specific


email by ID.

PAVEL DUGLAS
MAIL ACTIONS
Get Folder List - Gets a list of folders in the specified
mailbox and returns the result in Object list or CSV format.

Get folder info - Gets the total number of emails, recent and
unread emails in the specified folder.

Create new folder - creates a new folder in the mailbox for


messages or filtering them.

Rename Folder - Renames the specified folder in the


mailbox.

Delete folder - deletes the specified folder.

Debugging - displays useful information in the log for error


detection.

PAVEL DUGLAS
PHONE VERIFICATION ACTIONS

Get phone number - gets a phone number from the SMS


receiving service. This action will return a string containing
the received phone number. For example, "79001112323".
The API key for the service is specified, the service itself,
country, operator, server URL or service that is not in the list
is selected.

Receive activation code - receives an activation code from


the specified number. This action will return a string
containing the code from the SMS message or the full
message if the service failed to get the code from it. You
can set the service call interval and wait timeout.

Change activation status - changes the activation status for


the specified number. This action changes the activation
status for the specified number on the SMS service. For
example, the number is canceled, blocked, get the number
again and others.

PAVEL DUGLAS
PHONE VERIFICATION ACTIONS

Get balance - gets the balance of the SMS receiving service.


This action will return a number equal to the balance of the
specified SMS service. If it was not possible to get the
balance, then the action will return null.

Get number of available numbers - gets the number of


available numbers on the SMS receiving service. This action
will return a number equal to the number of available
numbers matching the specified parameters on the SMS
receiving service.

Get list of sites - gets the list of sites of the SMS receiving
service. This action will return a list consisting of objects
containing identifiers and names of sites supported by the
specified SMS receiving service. The site ID is contained in
the id property of the object, and the name is contained in
the name property.
Example: [{"id":"aol","name":"Aol.com"},
{"id":"gmail","name":"Google"}]

PAVEL DUGLAS
PHONE VERIFICATION ACTIONS
Get list of countries - gets the list of countries of the SMS
receiving service. This action will return a list consisting of
objects containing identifiers and names of countries
supported by the specified SMS receiving service.

The country ID is contained in the id property of the object,


the name of the country in Russian is in the name property,
and the name of the country in English is in the name_en
property.
Example: [{"id":"0","name":"Russia","name_en":"Russia"},
{"id":"1","name":"Ukraine","name_en": "Ukraine"}]

Debugging - displays useful information in the log in case of


module errors.

PAVEL DUGLAS
PROCESS MANAGEMENT ACTIVITIES

Run Process - executes an executable file or a batch script.


The 'Batch script or path to executable' parameter can
contain the path to the executable you want to run, or a
batch script.

A batch script can have multiple lines, windows utilities can


be used, and other executable files can be run.

The default working directory is the path where BAS is


installed, you can change it with the 'Working directory'
parameter or run the 'cd' command inside the batch script.

The result will be written to the


PROCESS_STANDART_OUTPUT and
PROCESS_ERROR_OUTPUT variables, you can use regular
expressions to extract values from these variables.

PAVEL DUGLAS
ACTIONS TO SEND AN EMAIL

SMTP Settings - establishes a connection with the SMTP


server for sending emails through the mail client. Specify
the URL address of the SMTP server, port, login, password
and encryption.

SMTP Proxy - by default the SMTP client works without a


proxy, this action sets the proxy for the SMTP client.

Send email - sends an email message using an SMTP client.


It must be previously configured using the "SMTP Settings"
action. Indicate from whom, to whom, the subject of the
letter and the contents of the letter, as well as the hidden
copy and file attachments.

Enable Debugging - Displays useful information about


module errors.

PAVEL DUGLAS
TELEGRAM ACTIONS
Send Message - sends a message to the specified Telegram
chat using the specified Bot Token and Chat Id.
You can specify the text of the message, the thread number
in the message and the date and time at the beginning of the
message.

There is an extended version of this module in which you can


send files, media files and documents.

The advanced version can be obtained from the link:


https://automationempire.store/product/modul-dlya-
telegram-advanced

PAVEL DUGLAS
TIME ZONE ACTIONS

Set browser location by ip - sets browser time zone and


location to the same values as time zone and ip location.

The site can get information about the system time zone and
location using an internal api. This action allows you to
override the time zone and location values returned by the
browser.

Instead of this action, "Proxy" is used.

Set timezone - sets the browser's timezone. The site can get
information about the system timezone using the 'Date'
class. This action allows you to replace return values.

PAVEL DUGLAS
TIME ZONE ACTIONS

Set coordinates - sets the location of the browser. The


location can also be changed using the Proxy action.

The site can get information about your location using this
api. This action allows you to override the location returned
by the browser. Using this action is not necessary to hide
your location, because the coordinates can only be obtained
after the user accepts the request from the site in a special
pop-up window.

IP Information - Gets information for a given ip, includes UTC


offset, time zone, and more. To obtain ip information, either a
local database or an external service is used, see the "IP
Information" section for more information.

PAVEL DUGLAS
USER INTERACTION ACTIONS

Play Sound - Plays one type of sound notification. This


action can draw the user's attention to important events
during script execution.

You can download a more advanced module for working with


sound alerts at the link:
https://automationempire.store/product/modul-dlya-
zvukovyh-opoveshhenij-v-bas

Ask for input from the user - shows the input field to the
user and waits for him to enter some value and store this
value in a variable. This action works like a captcha, but text
is displayed instead of an image. This action has no time
limit and will continue until the user enters something.

PAVEL DUGLAS
USER INTERACTION ACTIONS

Run javascript in web interface - executes javascript code in


the context of the web interface. If the web interface is not
enabled, this action does nothing.
The web interface can be enabled through the premium
account cabinet. By default, BAS has a standard gray design.
If you want to change it to your own, then this can be done
using Web Interfaces.

Many different Web Interfaces for scripting can be found


here: https://automationempire.store/product-category/bas-
web-interfejsy

Manual Browser Control - Transfers temporary control of the


browser to the user. Every mouse movement and keyboard
event will be sent to the browser directly. When the user is
done with the browser, they can click on a link at the bottom
of the page to transfer control of the browser back to the
application.

PAVEL DUGLAS
BUILT-IN LANGUAGE ACTIONS

Node.js is an action that allows you to call code from


NodeJS Javascript on different versions, work with NPM
modules and build more flexible logic in scripts.

Additional files can be attached to this action.

Through this action block, you can call BAS functions via
API when it makes sense.

PAVEL DUGLAS
EXCEL ACTIONS
Create file - an action that creates and cleans up an Excel
file at the specified path. This action creates the file if it
doesn't already exist and clears all sheets if the file already
exists.

Read cell - an action that allows you to read a cell from the
specified excel file. The sheet of the table and the address
of the cell are indicated.

Write to cell - an action that allows you to write values and


data to the specified cell by sheet index and cell address.

Number of rows - the action gets the number of rows in the


Excel table from the specified path.

PAVEL DUGLAS
EXCEL ACTIONS

Read lines - reads lines from the specified Excel file.

Insert rows - insert rows on the specified sheet of the table


from a specific row.

Delete lines - deletes lines from line A to line B.

Read sheet - reads the entire sheet of an Excel file in CSV list,
CSV string, 2D list formats.

Write to sheet - writes data to the entire sheet.

Read cell range - reads a range of cells from A to B.

Write to cell area - write data to a range of cells from A to B.

Import from file to resources - Import Excel to resources for


further work.

PAVEL DUGLAS
EXCEL ACTIONS

Exporting from resources to a file is the opposite of


importing to resources.

Get list of sheets - returns a list of sheets available in Excel.

Add sheet - add a new sheet to Excel.

Rename Sheet - Renames the Excel sheet.

Move sheet - moves the sheet from one place to another.

Delete sheet - deletes a sheet by index.

Clear sheet - clears all data from the sheet by index.

Clear cell - clears the cell data.

Clear Cell Range - Clears the data of a range of cells.

PAVEL DUGLAS
EXCEL ACTIONS

Convert to JSON - converting EXCEL data to JSON format.

Find one cell - finds a cell by its contents.

Find all cells - finds all cells by their contents.

Get formula from cell - Gets the formula from a cell.

Set formula to cell - sets the formula to the specified cell.

Get one style for one cell - will get the style for one cell.

Get list of styles for one cell - get a list of styles for one
cell.

Set one style to one cell - sets the style to 1 cell.

PAVEL DUGLAS
EXCEL ACTIONS

Set style list to one cell - sets the style list to 1 cell.

Set one style to cell area - sets one style to the specified
range.

Set style list to cell area - sets the style list to the specified
cell area.

Get Column Width - Gets the width of the specified column.

Get Row Height - Gets the height of the specified row.

Set column width - sets the column width.

Set line height - sets the line height.

Close file - closes the file and does not use.

PAVEL DUGLAS
DATABASE ACTIONS

Get List of Groups - action gets the list of groups from the
database. This action can be used to look up a group ID and
add new entries to that group. Groups are analogous to
files. Just as each file can contain multiple lines, each group
can contain multiple entries. Selects a table with data
before use.

Create Group - adds a new group to the database. Once this


action is completed, you can use the group id returned as a
variable to interact with the group, for example, to add
entries to the group.

Delete Group - deletes a group from the database.


You can choose whether you want to delete the group with
or without data.

Copy Group - duplicates the name, description and data of


the group. The copied group will have the same name and
description as the original

PAVEL DUGLAS
DATABASE ACTIONS
Edit Group - Changes the name and description of the
group.
One use case for this action is to create a group for the
data received by the script and change the date of the last
parse placed in the group description with this action.

Insert Record - adds a new record to the database. This


action returns the id of the added post, you can use it in the
future to manipulate the post. The action is synchronous,
so it can be used on multiple threads. The table is
specified, group id.

Edit One Record - Updates a record in the database. If you


only want to update certain fields, fill in only those fields
and leave the rest of the fields blank. Those fields that are
empty will not be updated. This action only changes one
record and does not change the ID of the record in the
Database.

PAVEL DUGLAS
DATABASE ACTIONS
Get One Record - Gets one record by its id. This action
retrieves only one record from the Database. After the
action is completed, the variable will contain the result in
strings in CSV format. You can split a string into
components using the "Parse String" action from the "Tools"
module.

Get Records By Criteria - this action retrieves records from


the Database by filtering, sorting and paginating the results.
After the action completes, the variable will contain the
result as a list of strings. Each row contains one entry from
the database in CSV format.

Change Records By Criteria - this action changes all


records matching the filters, be careful, if you do not set any
filters, then absolutely all records in the database will be
changed.

PAVEL DUGLAS
DATABASE ACTIONS

Number of Records - Gets the number of records matching


the filters. This action will only modify entries that match all
filters. Filters can contain groups.

Delete Records By Criteria - this action deletes all records


that match the filters, be careful, if you do not set any filters,
then absolutely all records in the database will be deleted.

Delete One Record - this action deletes only one record.

Move Entry To Group - moves or copies an entry to another


group. You can select the move type by changing the Record
Move Type field. This gives you the ability to move or copy
or link to an existing entry.

PAVEL DUGLAS
URL ACTIONS

Change URL - changes the elements of the specified URL.


This action will return a string containing the changed URL.
Specify new values for elements to be changed in the URL,
specify "-BAS-CLEAR-" if the element is to be removed, leave
the field blank if the element is not to be changed.

Parse User-Agent - parses the User-Agent string into


elements. This action will store each User-Agent element into
its own variable. User-agent - this string contains information
about the browser, operating system, device used.

Punycode encode/decode - encodes or decodes a string in


punycode. Punycode is a method for converting sequences
of Unicode characters into a sequence of ASCII characters
allowed in domain names.

PAVEL DUGLAS
URL ACTIONS

Url component encode/decode - encodes or decodes the


string containing the Url component.

This action can work in two modes: encoding and decoding.

The modes can be switched by the parameter "Encrypt or


decrypt". Depending on the mode, the input parameter will be
either an encoded string to be decoded, or a regular string
containing an Url component to be encoded.

For example, if the string "?x=test" is specified and the


encode mode is enabled, then the action will return
"%3Fx%3Dtest".
And if the string "%D1%82%D0%B5%D1%81%D1%82" is
specified and the decode mode is activated, then the action
will return "test".

PAVEL DUGLAS
URL ACTIONS

Normalize URL - leads to the normal form of the URL.


This action will return a string containing the URL normalized
according to the specified parameters. For example, the URL
"www.site.com/api.php?b=two&a=one&c=three" will be
normalized to "https://site.com/api.php?
a=one&b=two&c=three" if the parameter "Default protocol" is
set to "https" and options "Cut WWW", "Sort query
parameters" are activated.

Parse URL - parses the URL string into elements.


This action will store each element of the URL into its own
variable, namely protocol, username, password, host, port,
path, request, anchor/fragment.

Create URL - creates a URL from the specified elements. This


action will return a string containing the final URL.
Values are specified for elements that need to be added to
the URL, elements that do not need to be added are left
empty.

PAVEL DUGLAS
CHECKSUM ACTIONS

String checksum - calculates the checksum of the specified


string. The checksum is the value obtained as a result of
data processing by a hash function, this function works in
accordance with a certain set of rules called an algorithm.
The checksum for two identical strings will always be the
same, and if there is the slightest difference in the data, the
checksum will be different. For example, the string "Mr.
Douglas" can be encrypted using the MD5 algorithm and get
the hash e2c657594b074148dd7327255070393b.

File checksum - calculates the checksum of the specified


file. In most cases, the checksum is used to check the
integrity of data during transmission and storage, as well as
to quickly compare a data set.

Get Algorithm List - Gets a list of supported hashing


algorithms. This action will return the full list of supported
hash algorithm names. Example:
["blake3","crc32","keccak512","sha512"].

PAVEL DUGLAS
BACKUP ACTIONS

Unpack archive - action that unpacks .zip, .rar, .7z archive to


the specified location. You can specify the path to the
archive, the archive type, the unpacking path, the list of files
to be extracted, and additionally the password if the archive
is password protected.

Zip folder - the action wraps the folder in the selected


archive type. The path to the folder and the output path with
the archive are specified.

Archive files - an action that archives files into an archive.


You can specify 3 files or a list of files to choose from.
Specifies the type of archive and the path where to save the
archive.

Get a list of files from the archive - the action gets the list
of files from the archive that it contains. Specifies the type
of archive and the path to it.

PAVEL DUGLAS
FTP/SSH ACTIONS
Configure FTP/SSH - sets access to a remote FTP or SSH
server. This action must be called once before any other
action that operates on the remote server. This action does
not immediately establish a connection. The connection will
be established only after the first attempt to access the
server. Works with 3 protocols: SFTP, FTP, SSH. Used to
connect to the site directory.

Read file - reads a file on a remote server and saves its


contents to a variable. The file can be saved in base64
format.

Write to file - writes a file on a remote server to a specific


directory.

Download file/folder - downloads a file or folder from a


remote server to a specified location. If the "Validate
checksums" option is enabled, the downloaded file will be
checked for existence and that it matches the original file.
And if the file was not downloaded or downloaded damaged,
the action will fail.

PAVEL DUGLAS
FTP/SSH ACTIONS

Upload file/folder - uploads a file/folder to a specified


location on a remote server and can check the checksum for
integrity.

Check file/folder existence - checks whether the specified


file or folder exists on the remote server. Returns true if YES
and false if NO.

File/folder information - gets information about a file or


folder located on a remote server, namely: directory,
modification date, whether it is a folder or a file, existence.

Create file/folder - creates a file or folder on a remote server.

Delete file/folder - deletes a file or folder on a remote server.

PAVEL DUGLAS
FTP/SSH ACTIONS

Move File/Folder - moves a file or folder on a remote server.

Copy file/folder - copies a file or folder on a remote server.

Search for files/folders - searches for files/folders in the


specified directory on a remote server. You can select
folders, files, subfolders.

Read file into list - reads a file on a remote server, converts


its contents into a list and saves this list into a variable.

Write list to file - writes the list to a file on a remote server.


Each element of the list will be added as a separate line.

PAVEL DUGLAS
FTP/SSH ACTIONS

Execute command (SSH) - executes a bash command on a


remote server. Action similar to "Start process" only for
execution on the side of the remote server.

Calculate checksum (SSH) - Gets the checksum of a file


located on a remote server. For this action to work, the
server must have sha1sum installed.

Close connection - closes the FTP/SSH connection.


If the connection is already closed or not yet open, this
action will do nothing. This action is optional, as the
connection is closed automatically if it has not been used for
a long time.

PAVEL DUGLAS
SQL ACTIONS
Configure connection - establishes access to the SQL
database. This action must be called once before any other
action that works with the SQL database. This action does
not immediately establish a connection. The connection will
be established only after the first attempt to access the
database. Allows you to work with MySQL, MariaDB,
PostGres, SqlLite, MsSql. You can also work locally by
specifying a sql format file in the "Storage" field using
SqlLite. Additionally, you can configure dialects.

Execute query - executes an arbitrary query to the SQL


database. For example, this query SELECT * FROM users
WHERE name = Mr.Duglas will return all users in the table
named Mr.Duglas.

Number of records - gets the number of records in the


database. You can also specify a filter.

PAVEL DUGLAS
SQL ACTIONS

Get One Record - Gets one record from the SQL database.

Get multiple records - retrieves multiple records from SQL


database and saves to CSV list, string, 2D list, Object List
format.

Update one record - updates the value of one record in the


database. The action is similar to calling a SQL query using
the UPDATE method.

Update Multiple Records - Updates the values of all records


in the database that match the specified filters.

Delete one record - deletes one record from the database


according to the specified criteria.

Delete multiple records - deletes multiple records from the


database according to the specified criteria.

PAVEL DUGLAS
SQL ACTIONS
Insert one record - inserts one record into the SQL database.
Specifies the table, fields, and data to insert. This action is
similar to an SQL INSERT statement.

Insert multiple records - inserts multiple records at once into


the SQL database. Specifies the table, fields, and data to
insert.

Close connection - closes the connection to the SQL


database. If the connection is already closed or not yet open,
this action will do nothing. This action is optional, as the
connection is closed automatically if it has not been used for
a long time.

Debugging - displays useful information about errors when


the module is running.

PAVEL DUGLAS
JSON ACTIONS
Get Value - Executes a JPath query on the specified string
and retrieves one value (the first one that matches).

Get all values - similar to getting a value only for working


with a list of values.

Get Key - Gets the first matching key from the JSON data
object.

Get all keys - similar to getting a key only for working with a
list of values.

Element Count - Executes a JPath query and gets the


number of elements in the JSON object.

Change value - executes a JPath request to the specified


string and changes all values in the JSON object that match
the request.

PAVEL DUGLAS
JSON ACTIONS
Delete Value - Executes a JPath request to the specified
string and removes all values in the JSON object that match
the request.

Whether the string fits JSON parsing - checks if the string


fits the JSON format and returns a boolean true/false.

Change Format - Changes the format of the selected JSON


string or object and stores the result in a variable. Available
data formats: String and JSON.

PAVEL DUGLAS
DIRECT BROWSER CONTROL
The action allows you to select the mode of operation with
the BAS browser. There are 3 modes available: Indirect
control (F1), Direct control (F2), Direct control, add actions
to the script panel (F3).

Indirect control (F1) - in this mode, you cannot click in the


browser window and enter any text, BAS does everything,
you only control.
Direct Control (F2) - You can interact with the browser
manually.
Direct control, add actions to the script panel (F3) - you
can interact with the browser manually and your every
action will be recorded in the automation script.

PAVEL DUGLAS
MOVE MOUSE
AND CLICK ON THE ELEMENT

The action performs a click on the specified element


while moving the mouse. The selector
CSS,MATCH,XPATH,XY is specified. You can set the
type of click: left mouse button, right mouse button or
double click. There are also 2 additional options:
disable mouse emulation and hold down the CTRL key.

Disable mouse emulation - used to disable the mouse


and perform a click via Javascript click() inside the
browser.

Hold down the CTRL key - useful when you need to


open a link in a new tab.

There is also an extra. parameters in the form of


mouse speed, deflection and attraction.

PAVEL DUGLAS
CLICK ON ELEMENT

An action similar to "Move the mouse and click on the


element", but without moving the mouse and
specifying additional parameters.

It is used when you need to quickly click on a certain


element on the page without touching third-party
objects.

For Javascript click, disable mouse emulation.

PAVEL DUGLAS
MOVE MOUSE OVER ELEMENT

The action moves the mouse over the specified


CSS,MATCH,XPATH,XY selector of the element,
specifying additional. speed, attraction and deflection
parameters.

It is useful when you need to, for example, scroll the


page or part of it while keeping the focus on the
background of the entire page.

PAVEL DUGLAS
MOVE MOUSE AND CLICK

The action moves the mouse along the specified X and


Y coordinates in the browser page and clicks on any
part of the page, specifying the add. speed, attraction
and deflection parameters. You can set the type of
click: left mouse button, right mouse button or double
click. There is also an extra. option: hold down the
CTRL key.

It is useful to use it when you need to, for example, to


click on the elements of an online game where some
objects fall and you need to click on them.

PAVEL DUGLAS
CLICK (X,Y)

The action simply clicks on the x and y coordinates


without moving the mouse across the screen. This
action works with absolute coordinates. If the
coordinates are not visible, the page will scroll so that
they are visible.

It is used similarly to the previous action block, but for


a faster click.

PAVEL DUGLAS
CLICK (X,Y)

The action simply moves the mouse cursor to the


specified X and Y coordinates.

The mouse movement path is always random and


resembles that of a human, you can change the
movement parameters with the settings button,
choosing speed, attraction or deflection in it.

PAVEL DUGLAS
TEXT INPUT

The action enters text or presses certain keys on the


keyboard (Enter, Escape, Backspace, and others) in the
specified field using the CSS,MATCH,XPATH,XY
selector.

Disable mouse emulation - used to disable the mouse


and perform a click via Javascript click() inside the
browser.

This action also allows you to configure mouse


movement settings, as it works with it.

PAVEL DUGLAS
CLEAR FIELD

The action clears the input field or any text block on


the page with the specified selector, equivalent to
typing <CONTROL>A<BACK>.

This action also allows you to configure mouse


movement settings, as it works with it.

PAVEL DUGLAS
EXAMINE AN
ELEMENT ON THE
PAGE
The action opens a separate browser window that
displays the DevTools (Console, Network, and other
tabs).

Used for a more detailed study of the components of


the site and its layout, requests, scripts.

The DevTools window is synchronized with the main


browser and the selection of any elements in it is also
displayed in the internal browser.

PAVEL DUGLAS
START A CYCLE

The action invokes the looping or multiparsing


settings on all page elements matching the selector.

BAS will automatically generate a query that will


include all elements similar to the element you
selected.

Selected items are marked with colors: green for


selected items and red for excluded items.

Loops of this type have a slight delay between each


step, so if you want to quickly parse the page, it's
better to get the page code and use xpath or a regular
expression.

PAVEL DUGLAS
TABS: ADD TAB

The action adds an additional tab to the browser


window and loads it at the specified URL + adds the
specified Referer.
This action has an additional lazy loading mode.

If set to true, a new tab is created and the specified


URL will be loaded in it only after switching to it.

If false is selected, then a new tab is created and the


specified URL is loaded in it immediately.

Useful when you need to keep the current site active in


the browser and still load the page in a separate tab.

PAVEL DUGLAS
TABS:
GET INFORMATION ABOUT TABS

The action gets the list of tabs and the index of the
current tab, stores the information in variables. The
[[URL_LIST]] variable will contain a list of urls. Each url
corresponds to one tab.

The [[TAB_INDEX]] variable will contain the index of


the active tab. Indexing starts at 0, so the first tab will
be at index 0, the second at index 1, and so on.

Used to build logic around switching and interacting


with multiple tabs within a single thread.

PAVEL DUGLAS
TABS:
SWITCH TO TAB

The action switches the browser to the specified tab


index. The first tab corresponds to index 0. Second tab
1 index and so on.

An index value can be specified with an integer and


expression type. Sometimes it is necessary to
calculate the tab index and expressions are used for
this purpose.

It is used when it is necessary to go, for example, from


site #1 to site #2 while keeping site #1 active in the
browser.

PAVEL DUGLAS
CHECK THE EXISTENCE OF AN
ELEMENT

The action checks if the element exists on the site


page. This action completes instantly. It writes the
result to a variable, which can be true or false.
If true, then the element is visible; if false, then it is
invisible.

The additional option "Check if the element is visible


on the screen" allows you to check the actual visual
detection of the element on the page. Try not to forget
to check the box for a more accurate location of the
element.

If the checkbox is unchecked, then the element will be


checked only in the page code.

PAVEL DUGLAS
GET ITEM CODE

The action gets the element code on the site page by


the specified CSS,MATCH,XPATH selector and saves
the value to the [[SAVED_XML]] variable.

It is useful when you need to work with, for example, a


specific complex button on the site and parse
additional parameters from it, such as disabled
without an attribute.

PAVEL DUGLAS
GET TEXT

The action gets the text of the element visible on the


screen by the specified CSS selector, MATCH, XPATH.

For example, if you apply this action to the entire page,


you will get all the text visible on the page.

This action can be applied to an input field to retrieve


the entered value.

It is useful to use when you need to get, for example,


the balance on the site and display it in the log for
information.

PAVEL DUGLAS
EXECUTE JS ON ELEMENT

The action executes Javascript code on the element


selected by the CSS, MATCH, XPATH selector.

It works exactly the same as if you were typing code


into the browser console.

For example, you can change the inner text of an


element using Javascript with the command:
document.getElementById("id").innerHTML = 'Your text
here';

This action is useful when none of the suggested


standard BAS actions does work on an element and
you still need to do it. This is where knowledge of
Javascript comes in handy.

PAVEL DUGLAS
SCREENSHOT

This action takes a screenshot of the selected element


by the selector and saves it as a PNG image encoded
as a base64 string. If the element is not visible, the
page will be scrolled to make it visible.

Most often it is a useful tool for solving text-graphic


captchas, for which it is difficult to get a picture from
the page code.

PAVEL DUGLAS
SOLVE CAPTCHA

The action allows you to solve a text-graphic captcha


on a website page using the specified
CSS,MATCH,XPATH selector.

The captcha image is obtained as a result of element


rendering. The captcha text is stored in a variable and
can be used later.

After rendering, the image may contain an extra border


or slightly change the color of some pixels due to
rendering inaccuracies. Therefore, for a more accurate
solution, try to use the browser cache and pull out
captcha images from there, and if this is difficult to do,
then this action can be used as an alternative.

PAVEL DUGLAS
SOLVE CAPTCHA WITH CLICKS

The action solves any type of captcha that requires


clicking on images.

Not all types of modern captchas lend themselves to


the traditional solution by replacing the token in the
hidden fields of the page code. Therefore, the solution
by clicks will be the most effective.

There are 2 services available for solution: rucaptcha


and 2captcha.

The solution key, server URL of your choice,


description of the captcha (the text "what to click on")
and delays with imitation of mouse movement are
indicated.

PAVEL DUGLAS
SOLVE FUNCAPTCHA

This action solves FunCaptcha.


Funcaptcha is a kind of graphic captcha where you
need to rotate the image in different directions.

To solve FunCaptcha, you first need to complete the


entire sequence of actions, after which the captcha
appears on the page. For example, fill out the
registration form and confirm it (if the captcha is
already on the page, then you can solve it right away).
After that, you must left-click on the captcha container
or on any element inside it, select this action from the
browser context menu, fill in the required data and
click on the OK button.

PAVEL DUGLAS
SOLVE HCAPTCHA

This action resolves Hcaptcha.


Hcaptcha is a type of graphical captcha where you
need to click on several of the 9 pictures that match
the description.

This action does not require you to search for the


necessary information to solve HCaptcha manually,
everything happens automatically without your
participation using the page source code and other
data.
The action automatically validates the HCaptcha using
the response from the service. The exception is when
the site does not use callback functions - then you will
need to act manually. For example, clicking the submit
button on a form or performing another similar action.

PAVEL DUGLAS
SOLVE RECAPTCHA2

This action decides RecaptchaV2.


RecaptchaV2 is a type of graphical captcha where you
need to click on several of the 9 pictures that match
the description. Similar to Hcaptcha, only Google's
captcha maker.

This action does not require you to search for the


necessary information to solve RecaptchaV2 manually,
everything happens automatically without your
participation using the source code of the page and
other data. The action automatically performs
RecaptchaV2 validation using the response from the
service.

This action does NOT resolve RecaptchaV2 Enterprise.

PAVEL DUGLAS
WAIT FOR THE ELEMENT TO APPEAR

This action will wait until the corresponding element of


the specified CSS selector, MATCH, XPATH appears
on the page.

If the checkbox "Check if the element is visible on the


screen" is checked, the action is completed only if the
element exists and it is visible.

It is useful to use it when you submit the registration


form and when you enter your personal account, you
need to wait, for example, for the <img> tag of the
avatar to let the script know that the login to your
personal account was successful.

PAVEL DUGLAS
SCROLL TO ELEMENT

This action scrolls the page until the specified element


selector is visible.

This action ensures that a particular element is visible


on the screen. If the element is already visible, then
this action will do nothing, otherwise it will scroll the
window so that the element is as close to the center
as possible.

Useful when the element is at the bottom of the page


and the standard click or move action does not scroll
the page to the bottom.

PAVEL DUGLAS
GET ELEMENT COORDINATES

This action gets the XY coordinates relative to the


current window position and the width and height of
the specified element using the CSS,MATCH,XPATH
selector.

For example, if the element coordinates are 200.200


and the window position is 50.50, then this action will
return 150.150. If the window position is 0,0, then this
action will return the element's absolute coordinates.

Useful when you need to click on a specific captcha


shape or click on the edge of some page element.

PAVEL DUGLAS
GET NUMBER OF ELEMENTS

This action gets the number of elements that match


the selector's query.

To generate a query, click on an element inside the


browser and select the "Get Number of Elements"
action. BAS will automatically generate a query that
will include all elements similar to the element you
selected.

This action always returns instantly and does not wait


if the element does not exist. If there is no element, it
returns zero.

Selected items are marked with colors: green for


selected items and red for excluded items.

PAVEL DUGLAS
GET ELEMENT STYLE
This action gets the element's CSS style from the
page's code.

The style field specifies the CSS name of the style to


be retrieved.

For example, display to get the visibility of an element,


or width for the width.

The style value will be saved by default to the


[[SAVED_STYLE]] variable.

PAVEL DUGLAS
START DRAG ON ELEMENT

This action moves the mouse over the specified


CSS,MATCH,XPATH selector and initiates a left-click
on it for subsequent dragging to another area on the
screen.

The mouse movement path is always random and


human-like, you can change the movement parameters
with the settings button.

After calling this action, you must also use "End Drag"
or "End Drag On Element".

It is used when it is necessary, for example, to solve


captcha slider.

PAVEL DUGLAS
FINISH DRAGGING
ON THE ELEMENT
This action moves the mouse over the specified
CSS,MATCH,XPATH selector and releases the left
mouse button.

Used after the "Start Drag on Element" action.

The end coordinates are always random, but close to


the center.

PAVEL DUGLAS
START DRAGGING XY
This action moves the mouse to the specified XY
coordinates and initiates a left mouse button press on
it for subsequent dragging to another area on the
screen.

This action works with absolute coordinates, not


relative ones.

Sometimes the dynamic captcha element selector is


hard to get and computed coordinates are used.

PAVEL DUGLAS
FINISH DRAGGING XY

This action moves the mouse to the specified XY


coordinates and releases the left mouse button.

Used after the "Start XY Drag" or "Start Drag on


Element" action.

The end coordinates are always random, but close to


the center.

PAVEL DUGLAS
GET LINK URL

This action gets the URL of the link and stores it in the
[[LINK_URL]] variable.

In case the link closest to the selected element cannot


be found, an empty string will be returned.

This action gets the "href" attribute from the link.


Sometimes this attribute may be missing, and sites
process clicks on links using javascript. In this case,
this action will not be useful.

PAVEL DUGLAS
GET ELEMENT ATTRIBUTE
This action gets the html attribute of the selected
element and saves it to the [[SAVED_ATTRIBUTE]]
variable.

For example, if an element contains markup like this


<a href="https://google.com">google</a>, then you
can find the address of a link by getting the href
attribute.

If an element contains <div id="message">text</a>


markup, you can get the element's ID via the id
attribute.

PAVEL DUGLAS
SET ELEMENT ATTRIBUTE
This action sets the html attribute of the selected
element by its name and value.

For example, you can change the id attribute of an


element with <div id="message-old">text</a> markup
if you use this action with id and message-new
parameters.

PAVEL DUGLAS
SET COMBOBOX BY VALUE

This action sets the value of the dropdown list. Works


only on drop-down lists (not on text input fields).

The string with the value from the <option> tag in the
<select> tag is specified. The string must exactly
match the input value.

If the dropdown list has non-standard markup, this


function will not work, in this case the "Set ComboBox
Index" action is used, which will be discussed next.

PAVEL DUGLAS
SET COMBOBOX BY INDEX

This action sets the value of the drop-down list by the


index of the desired element. Works only on drop-
down lists (not on text input fields).

The string with the value from the <option> tag in the
<select> tag is specified. The string must exactly
match the input value.

For example, the page has a combobox with a list of


values: Male and Female.

Male has index 0 and Female has 1.

To select Male, you specify 0, similarly with female.

PAVEL DUGLAS
SET COMBOBOX
TO RANDOM

This action sets the random value of the dropdown


list. Works only on drop-down lists (not on text input
fields).

BAS will automatically take all the values of the list


and select a random element from it.

PAVEL DUGLAS
BAS also allows you to
select elements
graphically with the right
mouse button and work
with them. This method
also has its own
personal context menu,
similar to the usual one.
CONTEXT MENU OF
ACTIONS OF GRAPHIC
SELECTORS
M O V E AND CLICK O N T H E E L E M E N T
Allows you to move and click on the specified element in the
Base64 graphical view. You can set an arbitrary base64 and
the action will automatically look for it on the page. The
accuracy of the match is also set from 0 to 100, scrolling and
the type of click (LMB, RMB or double mouse click).

C L I C K ON ELEME N T
Allows clicking on the specified base64 element on the page
if it is found without moving the mouse.

M O V E MOUSE O V E R E L E M E N T

Allows you to move the mouse over the top border of the
specified base64 element on the page.

PAVEL DUGLAS
CONTEXT MENU OF
ACTIONS OF GRAPHIC
SELECTORS
T Y P E TEXT
Allows you to enter text as in a normal context menu action,
only on a base64 graphic element. Useful when it is difficult
to get to the desired input field or the page code is encrypted
and the only way is to link graphically.

C L E AR EDIT
Allows clearing text fields on the page of the specified
base64 graphic selector.
TABS
Similar to actions from the usual context menu.

C H E CK THE EXIS T E N C E O F A N E L E M E N T
Allows you to check if a graphical element exists on the page
in base64 format.

PAVEL DUGLAS
CONTEXT MENU OF
ACTIONS OF GRAPHIC
SELECTORS
W A IT WHILE ELE M E N T E X I S T S
Allows you to wait for the selected graphic element on the
base64 site page.
G E T ELEMENT CO O R D I N A T E S
Allows you to get the XY coordinates, width and height of the
graphic element.
S T A RT DRAGGI N G O N A N E L E ME N T
Initiates holding the left mouse button on a graphic element
for subsequent dragging over the page area.
E N D DRAG ON EL E M E N T
Lets you release the left mouse button and finish dragging
the graphic element.

PAVEL DUGLAS
CHAPTER 3
FUNCTIONS

"Interfaces keep things organized, but don't speed up growth -


functions do."

Alan Perlis
BAS FUNCTIONS
FUN
CTI
ON
Functions are special containers made up of BAS
constructor action blocks, unlike modules, which
are made up of functions.

As you develop automated scripts, you will often ACTION BLOCKS


use functions to group the actions you need.

As a rule, a well-written automation script is broken


down into its component parts. For example,
authorization on the site, receiving a balance,
registering mail, etc. etc. Under each of these
actions, a unique function is created to break down
the automation script into specific tasks.
PAVEL DUGLAS
BAS FUNCTIONS
FUN
CTI
ON
BAS functions, like in any programming language,
allow you to create parameters and accept their
values for further work through the "Get function
parameter" action, as well as return the result of
successful or unsuccessful completion of the ACTION BLOCKS
function.

Functions can be called on multiple threads to


improve the performance of your automation script.

PAVEL DUGLAS
CHAPTER 4
AUTO SCRIPTS

"You can teach anyone to sculpt, but then you would have to teach
Michelangelo how not to do it. It's the same with great
programmers."

Alan Perlis
PAVEL DUGLAS
AUTO-REGISTRATION
Auto-registration is the process of
automatically filling out forms on website
pages with the subsequent saving of
accounts for various tasks.

Someone uses auto-registration to test


their site for errors or bugs, someone
registers multi-accounts on the site for
earnings or referral links, someone
registers accounts on popular sites and
sells them, someone uses accounts to sell
services by twist.

Car recorders are needed by almost


everyone on the Internet and you can build
a whole business on this.
AUTO-REGISTRATION
SCENARIO OUTLINE

VERIFICATION OF THE
DOWNLOAD REGISTRATION RECEIVING
LOGIN TO THE PERSONAL
FORM EMAIL CODE
ACCOUNT

FILLING OUT THE RECEIVING SAVE


REGISTRATION FORM SMS CODE COOKIES

SAVE
EMAIL AND PASSWORD

PAVEL DUGLAS
PARSING PAVEL DUGLAS

Parsing is the process of getting data or


any useful information from the HTML
page of a site.

Usually used to obtain information from


ads on Avito and similar sites, to obtain
statistical data from any source site.

For example, you need to get a list of links


to ads and get all the pictures, description,
titles, sizes of something and other useful
information from them.
PARSING
SCENARIO OUTLINE

LOADING THE PARSING XPATH APPLICATION


PAGE WITH THE PAGE № AND GETTING
PARAMETER DATA

REG. EXPRESSIONS AND


GET PAGE HTML CODE SAVING DATA
GETTING DATA

TO A TEXT FILE TO EXCEL FILE TO THE DATABASE

PAVEL DUGLAS
CHECKER ACCOUNTS FOR VALID
Checker is a special automation script
that allows you to check the list of
accounts for successful login to your
personal account on the site or for any
other actions that require authorization on
the site.

As a rule, checkers are created on HTTP


requests, but there are options for web
emulation that are slower.

For example, you have a list of purchased


mails and you want to check them for
enabled IMAP protocol for working with
letters.

PAVEL DUGLAS
CHECKER
SCENARIO OUTLINE

VERIFICATION OF THE
LOGIN PAGE LOADING LOGIN TO THE PERSONAL
ACCOUNT

SUBMITTING AN CHECK TARGET ACTION OR


SAVE DATA GOOD/BAD
AUTHORIZATION FORM REQUEST STATUS 200

TO A TEXT FILE TO EXCEL FILE TO THE DATABASE

PAVEL DUGLAS
MAILER/SPAMMER PAVEL DUGLAS

Mailer (Spamer) is a special script that


performs the same type of actions for the
mass mailing of messages of a general or
advertising nature.

Most BAS users use, for example, social


networks to send promotional messages,
dating sites, message boards, email clients
(Gmail, Yandex and others) or specialized
sites where you can write personal
messages.

Mailers are also created either on Web-


emulation or on HTTP requests, but the
speed of the latter will be much higher.
MAILER/SPAMMER
SCENARIO OUTLINE

REGISTRATION OF NEW PREPARING RESOURCES


MAILING LAUNCH
ACCOUNTS FOR DISTRIBUTION

LOADING READY-MADE
SETTING MAILING OPTIONS RESULTS COLLECTION
ACCOUNTS

SETTING UP AUTO-REPLIES

PAVEL DUGLAS
CHAT BOT PAVEL DUGLAS

Chatbots are special automation scripts


that can be created in BAS for social activity
in the form of responses to messages,
similar to business chatbots.

For example, you can set up your Vkontakte


application to send messages and
communicate automatically with customers
or, for example, respond to comments
under your posts or, for example, emit
communication between different accounts.
CHATBOTS
SCENARIO OUTLINE

REGISTRATION OF NEW SETTING SETTING


ACCOUNTS TRIGGERS API REQUESTS

LOADING READY-MADE GENERATOR CONNECTION


RESULTS TRACKING
ACCOUNTS ANSWERS

PAVEL DUGLAS
AUTOPOSTING PAVEL DUGLAS

Auto-Posting is a special algorithm that


can be assembled on BAS to automatically
post posts to social networks or
specialized resources or forums or instant
messengers.

For example, I use auto-posters to


automatically publish posts with
cryptocurrency news every 6 hours to keep
abreast of what is happening or
cryptocurrency rates so as not to blow.

Many use it as an SMM service, helping


businesses broadcast their activities on
social media. networks.
AUTO-POSTING
SCENARIO OUTLINE

REGISTRATION OF SOCIAL
SETTING THE FREQUENCY TEMPLATING SETUP
ACCOUNTS NETWORKS
OF PUBLICATIONS POSTS
OR SITES

ЗАГРУЗКА ГОТОВЫХ LOADING READY-MADE CONNECTING PUBLISH


АККАУНТОВ ACCOUNTS CONTROLLERS

PAVEL DUGLAS
AUTO-FILLER PAVEL DUGLAS

Auto-Filler is a script that allows you to


automatically fill out large forms on
websites, click on various form elements
and submit them. It is similar to an auto-
registrar, only to fill in a large amount of
information within the site.

For example, I made a script for creating


applications in GooglePlay and auto-
completing different sections, there were
dozens of them. On average, filling out such
a form takes 20-30 minutes and of course
this kind of BAS script saves a lot of time.
Also, this type of script can be used in
conjunction with an auto-registrar.
AUTO-FILLER
SCENARIO OUTLINE

LOADING READY-MADE GENERATION CHECKING THE


ACCOUNTS ADD. DATA CORRECTNESS OF FILLING

PREPARING DATA FOR CREATING A FILL FUNCTION


SAVE RESULTS
FILLING AND DOWNLOADS

PAVEL DUGLAS
CONTENT GENERATOR PAVEL DUGLAS

Content Generator is a script that allows


you to receive textual and graphic
information from different sources and
generate full-fledged content.

It can be generating a picture and


overlaying text on it, or a picture created
from the BAS tools of the "Image
Processing" module.

Usually used in conjunction with mailers,


chatbots, auto-posters and other types of
scripts.
CONTENT GENERATOR
SCENARIO OUTLINE
PAVEL DUGLAS

IMAGE ACQUISITION PUTTING TEXT ON AN SETTING


BY API IMAGE FILTERS

WRITING POSTS THROUGH


TEXT GENERATION SAVE RESULTS
AI API
FILE MANAGER PAVEL DUGLAS

File Manager is a script that allows you to


perform useful operations with folders and
files on your PC. Usually used in
conjunction with other types of scripts.

Can be used to copy, move, edit files,


folders and their internal files.
FILE MANAGER
SCENARIO OUTLINE

FILE UPLOAD
MOVING SAVE RESULTS
OR FOLDERS

DEFINITION DEFINITION
COPYING
ACTION FORMATS

OVERWRITING

PAVEL DUGLAS
STRING MANAGER PAVEL DUGLAS

A string manager is a script that allows


you to perform useful operations on
strings and textual data types.

Any operations, including alignment,


splitting into sentences, into words, line-
by-line reading, formation of texts for
posts, converting English text into
Russian and any other languages,
checking the content of the text, counting
the number of lines and characters, and
much more.
STRING MANAGER
SCENARIO OUTLINE

GETTING THE LENGTH OF


LOADING TEXT DATA CLEARING OR LEVELING
THE TEXT

DIVISION INTO WORDS


TRANSFORMATION CASE CONVERSION
OR PARAGRAPHS

EXAMINATION
CONDITIONS

PAVEL DUGLAS
AUDIO AND MEDIA CONTENT PROCESSOR

An audio and media content handler is a


script that allows you to perform useful
operations with any audio and media files.

For example, edit the uploaded photo, put


text on it, apply a filter, rotate, make a 3D
object, cut audio, convert to other formats
and much more.

PAVEL DUGLAS
AUDIO AND MEDIA CONTENT PROCESSOR
SCENARIO OUTLINE

DOWNLOAD MEDIA FILES

AUDIO FILE IMAGE

EDITING
FORMAT CONVERSION PRESERVATION
FILE

PAVEL DUGLAS
MONITORING AND DATA ANALYSIS PAVEL DUGLAS

Data monitoring and analysis is a script


that allows you to receive and analyze
data obtained from different sources.

For example, monitor cryptocurrency


rates and report fresh prices for them in
telegrams or, for example, monitor the
release of a new product in a store and
send notifications to Telegram.

There are a lot of ways to use it, it all


depends on your specific tasks.
DATA MONITORING AND ANALYSIS
SCENARIO OUTLINE

CONNECTION OF TREATMENT ISSUING A RESULT


MONITORING SOURCES DATA TO THE LOGS

GETTING CONTENT DATA ANALYSIS

PAVEL DUGLAS
BONUS COLLECTOR PAVEL DUGLAS

Bonus Collector is a script that allows


you to receive cash rewards from sites
that distribute cryptocurrencies or funds
for indirectly viewing ads or banners.

This is the most common type of script,


because it is simple and understandable
for many, but, as a rule, there are always
pitfalls with solving captchas.

For a beginner, this type of script is ideal


for training your skills.
BONUS COLLECTOR
SCENARIO OUTLINE

DOWNLOAD URL
SENDING
DISTRIBUTION FUNDRAISING
NOTIFICATIONS
BONUSES

RECEIVING TREATMENT
CAPTCHA SOLUTION
BALANCE CONDITIONS

PAVEL DUGLAS
CLICKER PAVEL DUGLAS

A clicker is a script that allows you to


automate mouse clicks on any website
for financial gain.

For example, automating ad views on


sites where they pay little money for it
or performing simple tasks where you
need to perform repetitive cyclic
actions in a circle.
CLICKER
SCENARIO OUTLINE

PAVEL DUGLAS
DOWNLOAD URL
START CYCLE OF VIEWS RECEIVING
CLICKER
ADVERTISING BALANCE
FOR ADVERTISEMENTS

AUTHORIZATION
IN PERSONAL CAPTCHA SOLUTION EXPECTATION
OFFICE
DESKTOP APPLICATION AUTOMATOR

Desktop Application Automator is a


script that allows you to automatically
manage Desktop applications on your PC
or laptop.

For example, automate the writing of any


text in notepad or notepad ++, automate
the writing of any repetitive code section,
open a VPN application and switch the IP
address, and much more.

PAVEL DUGLAS
DESKTOP APPLICATION AUTOMATOR
SCENARIO OUTLINE

RUN SAVE
EXPECTATION
PROCESS RESULT

REPEAT ACTIONS
OPEN WINDOWS PROGRAM TAKE ANY ACTION
N TIMES

PAVEL DUGLAS
ANDROID APPLICATION AUTOMATOR

Android App Automator is a script that


allows you to automatically manage
Android APK applications through
emulators such as NOX or LDPlayer.

For example, you can automate the


registration of Facebook accounts
through a mobile application, since this is
the only way to register it.

PAVEL DUGLAS
ANDROID APP AUTOMATOR
SCENARIO OUTLINE

CONNECTION
INSTALLATION
TO THE EMULATOR CLICKS AND NEXT STEPS
APPLICATIONS
ADB

CALL RECEIVING
SAVE RESULTS
ANDROID INSTANCE COORDINATES

PAVEL DUGLAS
BROWSER EXTENSIONS AUTOMATOR

Browser Extension Automator is a script


that allows you to automate any of your
browser extensions.

Yes, BAS works not only with websites,


but also with extensions, which makes it
a multifunctional tool.

For example, you need to automate


Metamask when working with
cryptocurrencies, or connect a VPN
extension or FoxyProxy or any other one
to your taste and color.

PAVEL DUGLAS
BROWSER EXTENSION AUTOMATOR
SCENARIO OUTLINE

SETTING EXTENSION CALL RECEIVING


BROWSER BY ID RESULTS

AUTOMATION
PROFILE LOADING SAVE RESULTS
ANY ACTION

PAVEL DUGLAS
API INTEGRATOR PAVEL DUGLAS

API Integrator is a script that allows you


to automate any services via an API
interface. For this, either the HTTP
Requests module or NodeJs or Python is
used. Any services that work with the API
can be easily connected to BAS and
receive any useful information, even if the
service does not work with the API, you
can track requests and form your own
API.

For example, you need to integrate a non-


standard SMS activation service or a
temporary mail service or get a proxy list
or get a list of currencies.
API INTEGRATOR
SCENARIO OUTLINE

RECEIVING
GET REQUEST RESPONSE ANALYSIS
RESPONSE

RECEIVING RECEIVING
POST REQUEST
RESPONSE RESULT

PAVEL DUGLAS
AUTOMATOR ANTIDETECT BROWSERS

Automator Antidetect Browsers is a


script that allows you to interact locally
with antidetect browsers and perform any
automatic actions in them. In fact, this is
a replacement for the built-in Chromium-
based browser with any other with the
most advanced anonymity settings.

You can connect to BAS, for example,


Dolphin and manage its profiles or
OctoBrowser or any other that allows you
to interact via API.

PAVEL DUGLAS
AUTOMATOR ANTIDETECT BROWSERS
SCENARIO OUTLINE

IMPORT COOKIES
CONNECTION RECEIVING
AND PREPARATION
TO WEBSOCKET RESULTS
PROFILE

LAUNCH ANTIDETECT CONTROL


PROFILE CLOSURE
PROFILE ANTIDETECT

PAVEL DUGLAS
SOCIAL ACTIVITY CHEATER

Social Activity Cheater is a script that


allows you to perform the same type of
actions in social networks. networks or
sites for special purposes where you
need to vote or show any activity.

For example, for likes, comments,


reposts, views, you can easily create an
automation script and develop your social
media. network. Or, for example, you have
your own cryptocurrency or token and you
can wind up voting in the ratings to
attract the attention of investors.

PAVEL DUGLAS
SOCIAL ACTIVITY CHEATER
SCENARIO OUTLINE

PREPARATION RECORD
LIKES
ACCOUNTS RESULTS

SUBSCRIPTIONS
FUNCTION
CHEATS

COMMENTS

REPOSTS

PAVEL DUGLAS
AUTO TRADER PAVEL DUGLAS

Auto-Trader is a script that allows you to


automatically trade on exchanges via
API.

For example, you have developed some


of your own unique trading strategy, you
know what parameters are needed for it,
what indicators and tools, and all this can
be collected inside BAS.

For example, you can set up receiving


cryptocurrency rates via HTTP requests,
then use a cycle to track changes in the
price range and, as soon as the
necessary condition is triggered, sell or
buy an asset via the API.
AUTO-TRADER
SCENARIO OUTLINE

PAVEL DUGLAS

RECEIVING QUOTES INDICATOR DATA TRACKING SEND A BUY ORDER

CHANGE TRACKING CALCULATION


SEND A SELL ORDER
IN COURSES CONDITIONS
BRUTE FORCE PAVEL DUGLAS

Bruteforce is a script that allows you to


automatically guess passwords for
archives, files, websites and other things.

For example, you have your own website


and you want to check the hard search
protection in the admin panel, then you can
quickly and easily write a brute force script
in a couple of clicks on a ready-made
dictionary.

In no case do I encourage you to make such


scripts for sites that do not belong to you,
this is punishable by law!
BRUTE FORCE
SCENARIO OUTLINE

LOADING THE
LOGIN VERIFICATION
AUTHORIZATION FORM

SENDING RECORD
POST REQUEST RESULTS

PAVEL DUGLAS
WEB APPLICATION TESTER

Web Application Tester is a script that


allows you to automatically test various
sites, web applications of your own
production.

For example, if you are testing


applications and have worked with
Selenium, then you can use BAS as an
alternative, since it will save a lot of time
on programming, besides, Selenium and
other similar NodeJS libraries like
Pupeeter / Playwright can also be
connected to it.

PAVEL DUGLAS
WEB APPLICATION TESTER
SCENARIO OUTLINE

DATA ACQUISITION
SITE LOADING TEXT ENTRY
FROM THE APPLICATION

DRAFTING
CLICKS ON ELEMENTS FORM SUBMISSION
BUG REPORTS

PAVEL
DUGLAS
AUTOMATOR OF ADVERTISING ROOMS

Advertising Accounts Automator is a


script that allows you to automatically
create and manage advertising
campaigns.

This can be controlled through the API


interface if the advertising platform
allows it, or through the browser as a
regular user.

I made different options, including


TikTok Ads, FB Ads, Google Ads,
Vkontakte, Ya.Direct and others.

PAVEL DUGLAS
ADVERTISING ACCOUNTS AUTOMATOR
SCENARIO OUTLINE

PAVEL DUGLAS
REQUEST TO CREATE A
CREATIVE UPLOAD
API CONNECTION GROUP
REQUEST
ADS

POST REQUEST COMPANY GETTING RESULTS BY ID


REQUEST TO CREATE ADS
CREATION COMPANIES
BUSINESS PROCESS AUTOMATION
Business Process Automator is a script
that allows you to automatically manage
the business processes of a small and
medium-sized business.

For example, an order is received in an


online store, the script monitors this event,
then sends a request to set a task to the
sales manager and a telegram notification
to the head of the sales department, or, for
example, a payment is received and it is
necessary to send a message to the client
about successful payment and enter it in
an Excel spreadsheet. All this can also be
implemented in BAS.

PAVEL DUGLAS
BUSINESS PROCESS AUTOMATOR
SCENARIO OUTLINE
PAVEL DUGLAS
ONLINE PAYMENT SETTING UP FURTHER
SENDING DATA TO THE
TRACKING MAILINGS
SALES MANAGER
SHOP CLIENT

SEND NOTIFICATION TO DATABASE ENTRY GETTING SALES


CLIENT DATA STATISTICS
EMPLOYEE TASK AUTOMATOR

Employee Task Automator is a script that


allows you to replace the routine processes
that employees perform in your business.

For example, you have a small business


that provides services for setting up
advertising, you can replace an employee or
at least partially save him from a headache
by automating the creation of advertising
campaigns and preparing creatives and
texts for ads.

PAVEL DUGLAS
WEBSITE CREATION AUTOMATOR
ON CONSTRUCTORS
Site Creation Automator on
Constructors is a script that allows you
to automatically create ready-made
landing pages and sites on constructors
such as Tilda, Creatium and others.

This is useful when you need to build a


large number of random sites in the
shortest possible time using ready-
made blocks and templates.

PAVEL DUGLAS
SITE CREATION AUTOMATOR ON
CONSTRUCTORS
SCENARIO OUTLINE
PAVEL DUGLAS
CREATING RANDOM CREATING RANDOM
AUTHORIZATION ON THE
COMBINATIONS COMBINATIONS
CONSTRUCTOR
TEXTS PICTURES

CREATING RANDOM
GENERATING RANDOM RECEIVING
VARIATIONS
HEADER COMBINATIONS RESULTS
BLOCKS
AUTO-TRANSFER OF FUNDS

Auto-Money Transfer is a script that allows


you to automatically transfer funds from
one wallet to another.

For example, you have a lot of Payeer


wallets to which you withdraw funds from
different sites. You can set up auto-
forwarding of the specified amount of
money from all wallets to one Main.

If the service does not have an API, then


you can automate everything through a web
browser, this allows you to do BAS without
problems.

PAVEL DUGLAS
AUTO-MONEY TRANSFER
SCENARIO OUTLINE

PAVEL DUGLAS
TRANSFER OF FUNDS COUNTING THE AMOUNT OF
LOADING
FROM ALL MONEY
WALLETS
WALLETS FUNDS

THE CONFIRMATION
OUTPUT
MAIN WALLET DOWNLOAD RECEIVING FUNDS
RESULTS
ON THE MAIN
BASIC BAS RESOURCES
DOWNLOAD BASS
https://app.browserautomationstudio.online
BAS ONLINE TRAINING
https://browserautomationstudio.online
BAS OFFICIAL TELEGRAM COMMUNITY (RU/ENG)
https://t.me/ae_bas
MARKETPLACE OF BOTS AND SCRIPTS
https://definova.club
STORE OF READY-MADE MODULES AND XML TEMPLATES
https://automationempire.store
BAS OFFICIAL FORUM
https://community.bablosoft.com
MY YOUTUBE CHANNEL ON BAS TRAINING
https://www.youtube.com/@browserautomationstudio
BASIC BAS RESOURCES
BAS VIETNAM CHANNEL BY BAS
https://cos.tv/channel/28834079208023040
BAS ENGLISH YOUTUBE CHANNEL
https://www.youtube.com/@bas_english
BAS TELEGRAM CHANNEL
https://t.me/automationempire
BAS CASES
https://pavelduglas.ru/category/browser-automation-studio/kejsy-bas
BAS VK GROUP
https://vk.com/browsers_automation_studio

LEARNING BAS FROM SCRATCH TO GURU


Only real practical experience from an expert
Pavel Duglas, who went from rookie to
Guru at Browser Automation Studio
My contacts

TELEGRAM VKONTAKTE INSTAGRAM


https://t.me/pavelduglas1 https://vk.com/duglasp instagram.com/pavelduglas

You might also like