An Executor is the mechanism by which Functionize interacts with elements on a web page. Since not all web pages behave the same way, Functionize provides multiple executor types to ensure actions such as clicks, inputs, and interactions are performed reliably.
Executors are required for all actions, but they matter most for Click and Input actions. In most cases, Functionize automatically selects the correct executor. However, if a Click or Input doesn’t behave as expected, you may need to manually switch executors to achieve the desired outcome.
Using the right executor ensures more stable, accurate, and predictable test execution.
Available Executors
Functionize supports the following executor types:
ML-Based (Default)
- Relies on Functionize’s machine learning engine to select the correct method of interaction.
- Default and recommended in most cases.
Native JavaScript
- Uses JavaScript in the web browser to perform the action directly on the element.
Native Operating System (OS)
- Uses an operating system call to position and click the element.
X and Y Coordinates
For executors that rely on coordinates:
- X is the distance to the right of the top-left corner of the viewport.
- Y is the distance below the top-left corner of the viewport.
These can be manually adjusted if you need to perform a click in a different part of the element or screen. By default, they are set to the location recorded when the test was created.
Accessing Executors
There are two ways to view or change the executor used for a specific action:
From Slider View
- Open Slider View for the executed test.
- Click the gear icon for the action to open its settings.
- Select the desired executor type.
From Test Detail Page
- Open the test in Test Details.
- Expand the action you want to modify.
- Open the action settings, scroll to Executor Type and select the appropriate executor.
Best Practices
- Start with the default ML executor, which intelligently adapts to most scenarios.
- If a Click or Input action fails, switch to Native JavaScript first.
- For complex UI behaviors or unusual elements (e.g., SVG graphics), try the specialized executors.
- Adjust X/Y coordinates only when necessary for precision.
Note: Changing the executor only applies to the selected action. Always re-run the test after modifying executors to validate that the action performs as expected. If failures persist, try alternate executors in the recommended order (ML → Native JS → specialized executors).
Summary
Executors give you control over how Functionize interacts with elements, making test execution more reliable across different web technologies. By understanding and selecting the right executor, you can troubleshoot failed interactions, handle advanced UI cases, and improve the overall stability of your automated tests.