Skip to main content

Captcha Recognition

🔗 Original page — Source of this material


Captcha Recognition

Description

This action is used for automatic captcha solving via ❗→ services or ❗→ manually.

A captcha (from CAPTCHA — Completely Automated Public Turing test to tell Computers and Humans Apart) is a computer test used to determine whether the user is human or a bot.

Some types of captchas
Some types of captchas

How to add the action to your project?

There are several ways to add this action to your project.

Via the BROWSER context menu

To add the captcha recognition action using the ❗→ browserProjectMaker context menu, right-click on the image on the site and choose This is a captcha!

image-20200819-180955

Once the action is added, the ❗→ manual captcha recognition window will immediately pop up, which you can close for now and move on to configuring the action.

Via the PROJECT context menu

Add actionTabsRecognize captcha

image-20200819-175851

The downside to this method is that you first need to download the image to your computer and then specify the file path in the action.

Or you can use the ❗→ smart search.

Captcha recognition action settings

Main

image-20210531-140331

Recognition module

Choose the module (captcha service) through which the captcha will be recognized.

From the dropdown list, select the desired captcha recognition service (you’ll need to specify its ❗→ API key in the settings first). By default, MonkeyEnter.dll is used — ❗→ manual input.

Keep in mind

You can use project variables in this field.

Settings

Clicking the Settings button opens the program settings, in the ❗→ captcha service tab.

Before you can interact with an element on a page, you have to find it. In the actions ❗→ Get value , ❗→ Set value , ❗→ Fire event , ❗→ Touch event , ❗→ Swipe event, there are two ways of finding elements - classic and XPath.

Classic - Search by HTML element parameters: tag, attribute, and its value.

image-20200805-202115

XPath - search using ❗→ XPath expressions. With this, you can implement a more robust way of finding data that withstands layout changes compared to the classic search or regex.

image-20200805-202209

Which tab

Select the tab in which the element will be searched. Possible values:

  • Active tab
  • First
  • By name - when selected, an input field will appear to enter the tab name.
  • By number - the input field here should contain the tab’s number (count starts from zero!)

Document

It’s recommended to set this value to -1 (search in all documents on the page).

Form

Also better to set as -1 (search all forms on the page). This makes your template more universal.

Why set "-1"?

Example: there are 3 forms on a page — search, registration, and order. You need to click a button in the order form, so you choose “Form” value 2 (index starts from zero). After some time, a new login form is added before the order form, so number 2 will now be the login form — your template will either throw an error (button not found), or worse, click the wrong button.

Keep in mind

In the program’s settings, you can tick two checkboxes — Search in all forms on the page and Search in all documents on the page. This means whenever an element is added to Action Builder, -1 is used for document and form numbers by default.

Tag (classic search only)

image-20210525-095347

The HTML tag you want to get the value from.

Tip

You can specify several tags, separated by ; (semicolon)

Conditions (classic search only)

image-20210525-100053

  1. Group - priority of this condition. The higher the number, the lower the priority. If the element can’t be found using the condition with the highest priority, it moves to the next, and so on, until the element is found or the conditions run out. You can add multiple conditions with the same priority – in that case, search is done across all of them simultaneously.

  2. Attribute — the HTML tag attribute to search by.

  3. Search type:

  4. text - search for full or partial text match;

  5. notext - search for elements not containing the specified text;

  6. regexp - using ❗→ regular expressions. By default, the search is case-insensitive. To make regex case-sensitive, add (?-i) to the start of your pattern (turns off case insensitivity).

  7. Value - value of the HTML tag attribute.

  8. # of match - sequence number of the found element (count starts from zero!). You can ❗→ use ranges and ❗→ variable macros here.

Keep in mind

To delete a search condition, left-click the field to its left (blue highlighted in the screenshot), then press Delete on your keyboard.

Keep in mind

You can use several conditions to search for an element.

It’s always important to try and choose your search conditions so only one element remains, i.e., match number 0 (count starts from zero).

Save the result to a variable

The recognition result will be saved into the specified ❗→ project variable.

Additional

image-20200819-184415

Waiting

image-20200819-184609

Wait before execution If you specify positive numbers in the *FROM and *TO fields, the action will pause for a random amount of time within that range before starting.

Wait for element up to If after this time the element is not found, the action will exit via the red branch (with an error).

Module parameters

image-20200819-185149

Here you can specify additional parameters (options) for solving the captcha — case sensitivity, only Cyrillic letters, math captcha, multiple words, etc.

Format: parameter_name=parameter_value — separate multiple parameters with & (ampersand)

Example (based on the RuCaptcha API): phrase=1&numeric=2&regsense=1

  • captcha consists of two or more words, only letters, case sensitive

image-20200819-193201

Sample parameters from different services
Warning

Additional parameters and their possible values are specific to each service.

Here are a few examples based on two popular captcha solving services.

RuCaptcha - go to the API documentation page https://rucaptcha.com/api-rucaptcha#solving_normal_captcha and scroll down to find a table with parameters you can specify

here are just some of the possible parameters
here are just some of the possible parameters

Anti-Captcha - on the ❗→ documentation page for solving simple text captchas, there’s also a table of allowed parameters

image-20200819-191315

Even just between these two services and just a small fraction of their parameters, you’ll see that

  • some parameters mean the same thing but are named differently (case sensitivity — *case and *regsense)
  • others have the same name and meaning, but accept different types of values (*phrase)
  • some parameters fully match by name, purpose, and accepted values, but one service allows more options than another (*numeric)

Be extremely careful when using additional parameters if you are creating a project for multiple captcha services.

Captcha parameters

image-20200820-181121

Scale This option lets you reduce or increase the size of the captcha image you send.

Combine captchas Sometimes a captcha consists of several images, so you can combine them to avoid paying for each piece separately. To combine captchas (if you didn’t do it when recording your template), set the “Combine captchas” flag in the properties window for the first captcha element. Then right-click on the next element, and a new context menu item will appear: Attach to captcha.

image-20200820-193749

Each click creates a new action; for the last one, the Last captcha checkbox will be set (for previous ones, this checkbox is unchecked).

Async recognition

image-20200820-181817

This setting allows you not to wait for a service response and continue executing your template.

Enabling this option creates a new action: Wait for captcha recognition. It does not have any settings, just a To start of recognition button, which will take you back to the main action (very handy if your template’s actions are on opposite sides of the workspace). The main action has a back button — To end of recognition.

image-20200820-182040

Once the template reaches the main Captcha Recognition action, it will send the captcha to the service and keep working until it hits the Waiting... action, where it will pause until the service’s response is received. Afterward, you can use the variables you specified in the main action.

Complaint URL

image-20200820-182859

Captchas are solved by humans on the service, and people, as we know, can make mistakes. Sometimes workers are inattentive or misread the task and, instead of writing the answer to an expression 3+88=? , just write down the expression itself, even though the settings asked them to solve the math task.

For such cases, you can use this setting — if a captcha was solved incorrectly, send a request to this URL to complain about this specific recognition and the service will refund you.

Warning

Please don’t abuse this feature and only use it when a worker actually made a mistake and really solved the captcha incorrectly. If you complain and refund for correctly solved captchas, you will get banned very quickly.

Saving

image-20200820-185127

These options let you save the captcha image and answer to the specified folder.

  • Folder - the directory where images will be saved (you can use ❗→ variables)

  • Answers - where to save the answers to captchas:

  • In the filename - handy, but may not always work since captchas might contain characters that cannot be used in Windows filenames.

image-20200820-190103

  • To a file - in this case the captcha image will be saved as *captcha(X).png in the chosen directory, where X is the captcha number. A file captcha(X).txt will also be created containing the answer. Here, filename restrictions won’t be a problem.
  • Ignore “sorry” answer - for some errors, the Recognize captcha action returns sorry instead of a captcha answer. If this option is enabled, the program will not save captchas with such a response.
Where this can be useful:
  • if you want to create your own module for the CapMonster Cloud service.
  • when using ❗→ CapMonster 2 (a program for automatic captcha recognition) — this software supports many captchas out of the box, but there are some for which you need to ❗→ create modules yourself. To create a module, you need a base of correctly solved captchas — that’s where these action options come in: solve captchas (manually or via services), save the captchas and answers, and then train CapMonster 2 on them.

More information

Text captchas

Quite often, especially on poorly protected resources, you’ll encounter text captchas. Unlike an ordinary (graphic) captcha, these aren’t drawn on an image — they’re just text. Such captchas don’t need to be sent anywhere, you can just extract (parse) them directly from the page text. To do this, get the page text via the ❗→ Data action, select the page text, check “parse result”, and enter a ❗→ regular expression in the parameters for parsing the page.

Math captcha

You might also encounter math text captchas. These are just like text captchas, except they usually show a math expression like 58+63. You could turn this text into an image and send it for recognition, or you can use JavaScript. To solve such a captcha, you can use the ❗→ JavaScript action from the “Your code” category. In the code field, insert a link to the variable that contains the parsed expression (like 58+63), and after execution, the action will return the result (121).

Flash captcha or captcha from any other element

If you come across a flash captcha, you can render it as a regular image and also send it for recognition. Find this element in the ❗→ elements tree, right-click to open the action menu, and choose “This is a captcha” — that’s it!

How to handle CAPTCHA recognition errors

Warning

The video was recorded for an older version of ZennoPoster, but the error handling algorithm remains the same and is not dependent on the program version.

How to take a browser screenshot using the Recognize Captcha action?

Sometimes there’s a need to take a screenshot of a specific HTML element or the whole site (even parts outside the visible area).

Warning

If you only need a screenshot of the browser window (the visible part of the site), it’s better to use the Image Processing action.

To do this:

  • add the Recognize Captcha action to your project (make sure to do it via the browser context menu Warning, i.e., right-click any image on the site)
  • for the recognition module, select CaptchaSaver.dll
  • specify the search criteria for the element you want to screenshot
  • on the Additional tab, in the Module Parameters field, specify the full path for saving the image (you can use ❗→ variable macros)
Example action settings to screenshot the entire site

image-20210531-144132

image-20210531-144213


Example usage

Typical case

  • Right-click (RMB) on the captcha image and choose This is a captcha! from the context menu

  • right after adding this action, the ❗→ manual recognition window will pop up — you can close it

  • select the desired recognition module (by default, MonkeyEnter.dll - manual input)

  • make sure you’ve entered the API key in the ❗→ settings and funded your service account

  • Right-click in the input field where the captcha answer should go and select Field for captcha recognition result to add another ❗→ action for inputting the captcha answer (recording must be enabled in the project).

  • Or, you can find the field manually using the ❗→ Action Builder and input the answer using a ❗→ Set value action.

Combining

For this example, we’ll use a page with the following content:

Source code of the test page.
<!DOCTYPE html>
<html>
<head>
<title>CAPTCHA Test</title>
</head>
<body>
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAACp0lEQVRYR+2XzWsTURDA54WkybbS9qAWLAY9mCoVxFTwD/CgePOgJz0JIlgP0oM3vXgSP6mH6sGL3pSAB/EgVUOhCJIliSWtH02qxMQ2SbObTbIfbt5zNmBrm232I4KXzLKwMPPe/HbmvXnzCPxnITb927Uzm46187HlxGF//zghnosMWIgQ4rMJ2mrGQAZgMzqjlxOq9HmzgSmA4Xw/t23yys7dsC/AgZd4gASHwXvyGDQ+JIAVis1vMzH0NJZYU6mUwkuxCPdWsileEUZtAYwFBuemgiOjB7i+Nft1gDgClNoAxBEg2cJ2ajEJ2Wp91zzU838rzSMQGNCmQ4d9PvzzfyH5XyqczaSqJbm8/SuAagkwxg2yaCi8wfeCUoOIUHDMo2AK+LqkV3R9nFfFh/ZSYALwTirDtXya9zBy3wlFg7J6Q9PeJ0HOmo0zTYFZBAyA6/n085gsnnYCYGXbBehGwFEEcBcUgJGU1cJa17M6IfBGlMXJzfv/j41tAEHXYUnDsu5AZKwBL7AMz1aFx7winu9oGzrwu8FUpg048SWuxBSxFxUtJ6PtCLgFWMYyfCYzV8T6saOjCHzTFJipCo44jBRMV1ZZTtMmeFW42xFAsxLm0p9wkohdCox3jRL6Ni5Ls1uNsZ2CbinuRqAbgWZHlEvPEyDP7G5Dw44BpbgdM6pSieAhUnXdki2pMkQdFiLDWdM7niFRqbxYU+jRBZBKlk1pODCgvgod6ukjXic/29b29vJ3PJgKV3lZvGkJgPeCjzeCew8e4frBD3gpwce9MOzDKTxZ/QlPV/J3YmplwhIAb0aX9nC9D84NDcGw30BwL8bxl9c0mMr9YDlVOx5XxdeWAIaBAQEecgFX0QgQ0uMagTGKY9P43sKe4JGtRejamYuBvwERl60wi4JyjQAAAABJRU5ErkJggg==" id="1">
<img src="data:image/png;base64,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" id="2">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAChklEQVRYR2NkGGDAOMD2M1DPASoq7JwsfMv+MzL4MPxnePb////8nzfPbyLkQao5gF3DaAqfgX22ZHwdw8+ndxgeTyn8/u39W2WGh9ef43MEVRzApmkUyC4stVa+bA4jMycP2L7ni1oYPp3enfDjxtmFNHUAm7qOHgsb72HZ/El8HPKacLteb5jG8HbvytKfN8720MwBrKoGBixsbDuAwS7Oa+iAYs/rDdMZ3u9dUfqdVg7gUDOMY+TgnKqUUM3DomuP4UmaOYBV3dCEmZGxk0NG1Sk4v5ah3VWTIffCT4Ybn//RNgRYNXSNmRlYW1gFxdxlvYCeN/NmmGfGzTDxzi+Gs+//MjAyoqZnqoYAu6ZRNiuv0ERhz0TmhGA/hgJ1boaoU98Znv34z/Dr5SOGZ/PrGYRcohj4TFyREiEV0wCnhvEbxcaVwqxCEgyqPIwMH34zMLz68Y/h4/GtDK/XT/727+f3ZxJRFSr8Fl40coCm8XullvUCLHxCYAt+vX7C8Gr1BIZv10+d+fuXIY6JmaFUIroikWYO4FA3buJQ0Kjlt/Rm+H7vMsOXc/ve/f39u/nnzXOTge75y6FhNI+mDgBawsihaRjL8J/R5v+/fxd+/vuyhOHOnU+w8KaHA/DWKaMOGA2B0RAYDYHREBicIbB+KsP7fato1yZErhw4NI3mSkSUJfFb+cCFXy3vZHh3fFv2z+tnp9GsVQyvDdWNm0Uc/GqEfTMYGNi4GBi+vWd4MrOK4eP9K45/blw4QHMHsGkY67Lx8J6TDk5n4RCTZvhy5xrDs41zb3+/dhrUUfhLcweALGDTMAxmYmBsB7ZOFRj+/z/z7y9D8q/b567TrW9IyCJc8gD2DJUwgibfBwAAAABJRU5ErkJggg==" id="3">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAELklEQVRYR8WXe2xTVRzHf7eP+4COdXVsbHVt1831AbJ1VSYkoxiN/xEDQ2KiMQEExCyIOiSgGCTEGmROE1j2YHEIgzjDY/iMbMKUuBFcW2BztXOMdY/KHp1rKPf2tr3Hu5ote8A6Q6+cv27uOed+P+d3fq+LwUMe2EPWh5gBEDrTNhEmeh8BUvCHauKCoUK283prtAPGBGBMnEhWlyq3WkGqWAR32n4Fz7H9ffRwKAv6W+7OBvHAAJKMnBWEXH5JVVQhxRNTJ7T6q/bCqKOxgHXazggH8KhRQcZRduUWq0q2ZMUUncFzpTDScKqIdtqLhQLAKH1uXeKzL65OW/s6+MNTZQbPl8FI/clddLvtoCAAhN709rz0JYeOlpWDNyyGw53BqRYQEoDKXPqUKP6RRvU7lfjOZWlQfpMFn3cIpPKFExDCWUD1eAI5H7fn77CqX3rOAiV/BsF7sRZ8Td+CZs8x4QEog/lcyjPrn79gLYLPu1movdIGPSWFYXyhUiw4AGHIfZNSGz/5oqICwiIJ7LV5wX1wM2KGevdRKdoPBAWQZmUvw2XyXwo/rcY35ajg5as0dFXtA1/LT6VIHC6lkjNbhQPQ5MhJUmxLffVAusVigYEAgtb6Ohj4sthB08PL8XnxGYICEPrcM4pV69YkFWyPOFmgvxO6i7fd4Vi/OeC85sKN2YsFA+Dz/HZKY/hMteMIYBIpcAEa3Ie28hBdrzAu+/ExIMEApDrTE/j8BZdVOyuJ8Tz/V81HMNr8XTXjtG0YjzlhALTmeBIHW+qm/dq4HEtEy3f1R/AcP9DOeENPwu3rfkEB+Hs/rVhZsDbphTciOuyAG7o/3kKHGDqPdbbcmJx3Y24BUmfaSKr0Vaq3SiP3jkJBcBe/BkxvRyPC4KvpxQVDSEmkaHfPDMNTdYjjvsYAOek/HE38Pm7G3ntVKlJv7lQXlWlJtSEyPeZ4Q98c5R+mlbxJm6VJaZBgKZh443fZwH/tZ+CCAQj0dgDT4/qNYbz5cOsWM1nzng0JaTCzWSUNUkwsma2Szn0OIeir2AO+1svrWKf99FwAmvkmI296kzF3xZkrPSc+BN+VHzbw0VMdHUBvsogo2feKVespQqWL+AFE6V8lCxRApGonvh0aHYaApwtQOMRfgQu8F0747nppA/TY+6MCjC0g9NlZGBJtRJhoMYZxxKynR5gMT1YvT38vkpciY/A836jU13Tw4B2IQy6EguWs64ZzTk74X00d8zCMCUAd3xM2CNgTTobEM01GSqlu07zLXwH2b2ANnj0MIxdrhWtKp1hJY1wkS0z2ZOyuAohL5NMmDbdrrPC349Jmpt3BJ5D7jwf+MRn/NJ87mpOeXpOXkLsSmIE+6K09wvp93sfg5u/u/wdAtzQdRJJKQJDPC3ZzHOxiXbaz0fwpZhaIJnS/+X8AFD8VP30FZWcAAAAASUVORK5CYII=" id="4">
</body>
</html>

Each symbol is a separate HTML element. Right-click the first image — This is a captcha!, select Combine captchas in the settings, then right-click the other images and select Attach to captcha from their context menus. In the end, you should have four actions:

image-20200820-200754

When you run the project, the first three actions will just collect the images and merge them, and only the last one will add the final part and send it to the service for full captcha recognition.

Additional parameters when sending

Let’s say you get a captcha like this:

image-20200820-201350

It consists of separate pieces and you need to write the result of the expression (in this case — addition).

Source code of the page with the captcha
<!DOCTYPE html>
<html>
<head>
<title>CAPTCHA Test</title>
</head>
<body>
<img src="data:image/png;base64,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" id="2">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAGlElEQVRYR62XXWgUVxTH752Pnc3uzprNuphGMYkN8aOo7UMEKamg4IMVEdo8FF8UDFLwofoi2LdCK1QqKg2l1UYKCor2wQStmqixWkxtxKJtovEr0fiRxMSd3WxmM7Mz0/+5zoTUl+RhBw5nd3bmnt/5n3PPzHI2w+P+7t0Tw01NTjiXYzHcE/XNkWX2sqSEDYTD7AUsU17Ok2vXWl+fOpXq7u62plueT3dB8PvVyspczaefanoyySSclAsFJsN78BYgJjhnluexJ2Nj7KeWlnxrOr10cHDw8XTrzxjgRlmZsWjnTl2vqXlzj22/WTvwCM4A86C/39176FD+hGUtMwzjYdEAehIJY/727XpkCgBCCgDhAUBq9PX1uU2HD+ebOS8uwDMAJLdt00PV1ZwCen7gwE8CtLe7xzo6zIMlJcuLqkAGANqWLTqvqvofgOuXwIMCrmGwx/v3u60TE+beeLy4ACYA2KZNujd/vgCgwIESVAHXdZnZ1sYed3a6p2XZ/DEaLS6AU1ZmTzQ0yIV58wSA4wMECjjZLEsfO8b6DcM9oWnmr6FQcQH6S0u9yMaNTJo7l7mUseMIBShz8mZ3N0ufOcP6Jck9Eo2aVzmfGcDonTvLnu7Y8a3Z1RUqwUJh2DiM9nQa3oBlFcWe5Xmr69avV7SKCgHgoOMnSwGIoaNHmfX6NXukqs6B0lJzgevenCtJZjyb1ZK4VsGcyOu6NRaJeIYkqVnblp9mMl/wlpUrV1U3NPwmNzeHNCysUi19gCx8jgAAY8qy935dnawnEpMlECAoRa63l41eviy2/DCuuxSLOVGsE4dKcQQnEwChkDBTVdlftq0gwa28ZdGiVUyW29dt2KA4WKCAYOQd8lhAnMMC4rvvKXDB735nfJy9vniRFYaHGUOQYLIFs8Gl+UBDCka/0fRUYKd1nQ2o6lZ+qaZmFZOktg83blQL/sIBAAWmcwRSQEYFeFFzBKKpJ8HbL14w49o1xnGe0/kph9iadL3vCYZ6h666g5762/Ma+c3a2nr80LZk3TpNZIvMBAgutiljXwH6HtxMgUEFbonlOjtZYWhoMngAIbLGEQQXavoJOIDqU1XvpiQ18nsA8Fy3rWLNGo0C228BCBjqeCwoBTLi4cPpHB48uevXRfBJ8xUQM8KX/20IUvaFZXmditLIHxGA47Ql6usnAegZGihAANCRyRQEC8rImjLnALXu3mXOyIgoxVSIIPMAQPSBX8JAiUdjY96fBPDcBwjV1Wn0fJvwFbBxkwVSjmAyZT/V4zNlb/X0MAkL029kdLxdAuoBsqnykwI3xsfflOBJdfVHDudt2vLlIQKwKDMqhU9NGVPniszJI1v67D57xlx0fhCczongQSP68lO9pwKIRoa1mKb3LzXhbQDgprbEwoUhCkwKkKfmo5qriiIAKBBtnwDIvndPwCjohwAiKMPUEgQKUOBAflLgZ/TAA8dp5NdQAvxy4Z3KynAAQHWnuoo9i6EhPAIJJSjD0VHGM5k35wKjEvi9EADQ3icFJgPTdqatDdvjOF6/bQNgxYp6o6qq44+uLq8UQyUBI0/7fhBT66WmsUFAGJrGP6+s5Ivh+atXTKGGRHCFFPJ7gJT4B9J+9fy5OwsUKag5x7JYClZGW1qS5Gw47D6Ox/ltRXEGLGsb79q1a9YP589/bAwNaVHcEMnnGXmiTgMgjeBZqm9ZWdOXs2eHa5GnjAakwKI8PoTYGbAedPfu+/cnRjnfPptzV8c6OtYj78qylFNVNxcO85e49q5l9c74nXDz4sVGo67r7+bzXMXNKsAIgEAkmgv4zuF7DcPbd+tW/rimLS3qG9HuBQuMT6JRfT46LUTBYUJ+qMR9w0nWNzLiHblyJX8gHi8uwMF585zVsRivKCkRACEEleEl/BdggQGof3jY+6W9Pb8vGi0uwMlUauyDZDKSAoRQAAASGpTjTwmLRBjDZ1CxPgAcPns2/304XFyA1mRy7L1UKpLSdSgeYgoBUPAY/ieRAvQZ/uHQkNfU2ppvluXiAlxIJJyFc+bwMh9ARTBOmRNAoAL8ffTAd6dP548XCsUFOIO34iXl5fqkAiR/AEDet7vYBd8AoGV8vLgAJ2tr07dUNe5gCuoYMjEMKrwnMg1bD7OYTcRi3iAm4YiiuL2ZjN1hGMUF2LN58+/nz50LR0zT1V23gPe8UBIDBtW3MUxUMxplA55nZ2yIR9SWGzj3L+qyoc4AeDzB6cZ7pQc+z/HQX/wegTjChT4OJ4wAAAABJRU5ErkJggg==" id="1">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAChklEQVRYR2NkGGDAOMD2M1DPASoq7JwsfMv+MzL4MPxnePb////8nzfPbyLkQao5gF3DaAqfgX22ZHwdw8+ndxgeTyn8/u39W2WGh9ef43MEVRzApmkUyC4stVa+bA4jMycP2L7ni1oYPp3enfDjxtmFNHUAm7qOHgsb72HZ/El8HPKacLteb5jG8HbvytKfN8720MwBrKoGBixsbDuAwS7Oa+iAYs/rDdMZ3u9dUfqdVg7gUDOMY+TgnKqUUM3DomuP4UmaOYBV3dCEmZGxk0NG1Sk4v5ah3VWTIffCT4Ybn//RNgRYNXSNmRlYW1gFxdxlvYCeN/NmmGfGzTDxzi+Gs+//MjAyoqZnqoYAu6ZRNiuv0ERhz0TmhGA/hgJ1boaoU98Znv34z/Dr5SOGZ/PrGYRcohj4TFyREiEV0wCnhvEbxcaVwqxCEgyqPIwMH34zMLz68Y/h4/GtDK/XT/727+f3ZxJRFSr8Fl40coCm8XullvUCLHxCYAt+vX7C8Gr1BIZv10+d+fuXIY6JmaFUIroikWYO4FA3buJQ0Kjlt/Rm+H7vMsOXc/ve/f39u/nnzXOTge75y6FhNI+mDgBawsihaRjL8J/R5v+/fxd+/vuyhOHOnU+w8KaHA/DWKaMOGA2B0RAYDYHREBicIbB+KsP7fato1yZErhw4NI3mSkSUJfFb+cCFXy3vZHh3fFv2z+tnp9GsVQyvDdWNm0Uc/GqEfTMYGNi4GBi+vWd4MrOK4eP9K45/blw4QHMHsGkY67Lx8J6TDk5n4RCTZvhy5xrDs41zb3+/dhrUUfhLcweALGDTMAxmYmBsB7ZOFRj+/z/z7y9D8q/b567TrW9IyCJc8gD2DJUwgibfBwAAAABJRU5ErkJggg==" id="3">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAELklEQVRYR8WXe2xTVRzHf7eP+4COdXVsbHVt1831AbJ1VSYkoxiN/xEDQ2KiMQEExCyIOiSgGCTEGmROE1j2YHEIgzjDY/iMbMKUuBFcW2BztXOMdY/KHp1rKPf2tr3Hu5ote8A6Q6+cv27uOed+P+d3fq+LwUMe2EPWh5gBEDrTNhEmeh8BUvCHauKCoUK283prtAPGBGBMnEhWlyq3WkGqWAR32n4Fz7H9ffRwKAv6W+7OBvHAAJKMnBWEXH5JVVQhxRNTJ7T6q/bCqKOxgHXazggH8KhRQcZRduUWq0q2ZMUUncFzpTDScKqIdtqLhQLAKH1uXeKzL65OW/s6+MNTZQbPl8FI/clddLvtoCAAhN709rz0JYeOlpWDNyyGw53BqRYQEoDKXPqUKP6RRvU7lfjOZWlQfpMFn3cIpPKFExDCWUD1eAI5H7fn77CqX3rOAiV/BsF7sRZ8Td+CZs8x4QEog/lcyjPrn79gLYLPu1movdIGPSWFYXyhUiw4AGHIfZNSGz/5oqICwiIJ7LV5wX1wM2KGevdRKdoPBAWQZmUvw2XyXwo/rcY35ajg5as0dFXtA1/LT6VIHC6lkjNbhQPQ5MhJUmxLffVAusVigYEAgtb6Ohj4sthB08PL8XnxGYICEPrcM4pV69YkFWyPOFmgvxO6i7fd4Vi/OeC85sKN2YsFA+Dz/HZKY/hMteMIYBIpcAEa3Ie28hBdrzAu+/ExIMEApDrTE/j8BZdVOyuJ8Tz/V81HMNr8XTXjtG0YjzlhALTmeBIHW+qm/dq4HEtEy3f1R/AcP9DOeENPwu3rfkEB+Hs/rVhZsDbphTciOuyAG7o/3kKHGDqPdbbcmJx3Y24BUmfaSKr0Vaq3SiP3jkJBcBe/BkxvRyPC4KvpxQVDSEmkaHfPDMNTdYjjvsYAOek/HE38Pm7G3ntVKlJv7lQXlWlJtSEyPeZ4Q98c5R+mlbxJm6VJaZBgKZh443fZwH/tZ+CCAQj0dgDT4/qNYbz5cOsWM1nzng0JaTCzWSUNUkwsma2Szn0OIeir2AO+1svrWKf99FwAmvkmI296kzF3xZkrPSc+BN+VHzbw0VMdHUBvsogo2feKVespQqWL+AFE6V8lCxRApGonvh0aHYaApwtQOMRfgQu8F0747nppA/TY+6MCjC0g9NlZGBJtRJhoMYZxxKynR5gMT1YvT38vkpciY/A836jU13Tw4B2IQy6EguWs64ZzTk74X00d8zCMCUAd3xM2CNgTTobEM01GSqlu07zLXwH2b2ANnj0MIxdrhWtKp1hJY1wkS0z2ZOyuAohL5NMmDbdrrPC349Jmpt3BJ5D7jwf+MRn/NJ87mpOeXpOXkLsSmIE+6K09wvp93sfg5u/u/wdAtzQdRJJKQJDPC3ZzHOxiXbaz0fwpZhaIJnS/+X8AFD8VP30FZWcAAAAASUVORK5CYII=" id="4">
</body>
</html>

First, merge all the images into one. Then, for the final action, select the required service (in this example, RuCaptcha) and in Parameters under Additional, specify that a math operation must be performed (for RuCaptcha: ```calc=1`)

image-20200820-202611